Erreur inattendue... vraiment inattendue... [Résolu]

Messages postés
75
Date d'inscription
samedi 28 juin 2008
Statut
Membre
Dernière intervention
16 août 2011
- - Dernière réponse : syndrael
Messages postés
2382
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
- 27 déc. 2010 à 13:47
Salut!

J ai éecrit ces codes mais je ne parviens pas à acceder ma base Myqsl.
Voici le message d erreur:

Parse error: parse error in C:\Apache\htdocs\mypractices\login.php on line 74

la ligne 74 est la toute dernière dans ma page note pad++. Je comprends pas ou se cache l erreur. Quelqu un peut-il me venir en aide.
Merci.

<html>
<head>
<title>Building a Login Form </title>
</head>

Building a Login Form


<?php
//if form not yet submitted
//display form
if (!isset($_POST['submit'])) {
?>
<form method="post" action="login.php">
Username:



Password:




</form>



<?php
//if form submitted
//check supplied login credentials
//against database
} else {
$username = $_POST['username'];
$password = $_POST['password'];

//check input
if (empty($username)) {
die ('ERROR: Please enter your username');
}
if ('ERROR: please enter your password');
}

// attempt database connection
try {
$pdo = new PDO('mysql: dbname=users;host=localhost','yeo', 'yes');
} catch (PDOException $e) {
die ("ERROR: Could not connect: " . $e->getMessage());
}

//escape special characters in input
$username = $pdo->quote($username);

//check if username exists
$sql "SELECT COUNT(*) FROM users where username $username";
if ($result = $pdo->query($sql)) {
$row = $result->fetch();
//if yes, fetch the encrypted password
if ($row[0] ==1) {
$sql "SELECT password FROM users WHERE username $username";
//encrypt the passord entered into the form
//test it against the encrypted password stored in the database
//if the two match, the password is correct
if ($result = $pdo->query($sql)) {
$row = $result ->fetch();
$salt = $row[0];
if (crypt($password, $salt) == $salt) {
echo 'Your login credentials were successfully.';
} else {
echo 'You entered an incorrect password.';
}
} else {
echo "ERROR: Could not execute $sql. " . print_r ($pdo->errorInfo());
}

//close connection
unset($pdo);
}
?>
</html>




Étudiant
PHP le revolutionnaire, PHP le Conquérant
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
1660
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
8
3
Merci
bonjour
il manque une parenthése fermante
ligne 74
comme ça ça doit passer
attention à l'indentation
<html> 
<head> 
<title>Building a Login Form </title> 
</head> 

Building a Login Form
 

<?php 
//if form not yet submitted 
//display form 
if (!isset($_POST['submit'])) { 
?> 
<form method="post" action="login.php"> 
Username:
 
 
 
Password: 
 
 
 
 
</form> 



<?php 
//if form submitted 
//check supplied login credentials 
//against database 
} else { 
$username = $_POST['username']; 
$password = $_POST['password']; 

//check input 
if (empty($username)) { 
die ('ERROR: Please enter your username'); 
} 
if ('ERROR: please enter your password'); 
} 

// attempt database connection 
try { 
$pdo = new PDO('mysql: dbname=users;host=localhost','yeo', 'yes'); 
} catch (PDOException $e) { 
die ("ERROR: Could not connect: " . $e->getMessage()); 
} 

//escape special characters in input 
$username = $pdo->quote($username); 

//check if username exists 
$sql "SELECT COUNT(*) FROM users where username $username"; 
if ($result = $pdo->query($sql)) { 
$row = $result->fetch(); 
//if yes, fetch the encrypted password 
  if ($row[0] ==1) { 
  $sql "SELECT password FROM users WHERE username $username"; 
  //encrypt the passord entered into the form 
  //test it against the encrypted password stored in the database 
  //if the two match, the password is correct 
    if ($result = $pdo->query($sql)) { 
    $row = $result ->fetch(); 
    $salt = $row[0]; 
      if (crypt($password, $salt) == $salt) { 
      echo 'Your login credentials were successfully.'; 
      } else { 
      echo 'You entered an incorrect password.'; 
      } 
    } else { 
    echo "ERROR: Could not execute $sql. " . print_r ($pdo->errorInfo()); 
    } 
  
  //close connection 
  unset($pdo); 
  } 
}
?> 
</html>

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cod57
Messages postés
2492
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
11
3
Merci
Salut,

C'est pas tellement que mysql demande un mot de passe... Si la connexion se fait malgré le message d'erreur, c'est peut-être simplement que l'utilisateur yeo n'existe pas ou n'a pas le bon mot de passe. Du coup, la connexion se fait avec les valeurs par défaut définies dans php.ini, qui devraient être "root" et "" (chaine vide, pas de mot passe).

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de neigedhiver
Messages postés
2382
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
11
0
Merci
Pas si inattendue que ça alors comme erreur ?? LOL..
Commenter la réponse de syndrael
Messages postés
75
Date d'inscription
samedi 28 juin 2008
Statut
Membre
Dernière intervention
16 août 2011
0
Merci
Cod57,
c est parfait! Juste un manque de parenthèse c est la catastrophe.
Maintenant, il se pose ce message d erreur: ERROR: Could not connect: SQLSTATE[28000] [1045] Access denied for user 'yeo'@'localhost' (using password: YES)

Je comprends le sens de cette erreur. je trouve ça drole. Parce que j ai réverifié ma base de donnée et les dites tables dans mysql c est bien fait. Au fait; ça passe mais en affichant ce message là.

N.B
Supportez moi un peu; je suis entrain de capter au fur à mesure la logique du PHP. Car j en suis encore à mes débuts. J aimerai apprendre afin d aider aussi les autres un jour...

Étudiant
PHP le revolutionnaire, PHP le Conquérant
Commenter la réponse de Lunasoft
Messages postés
1660
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
8
0
Merci
bonjour

à voir le message je dirais que tes identifiants sont pas bons ; mysql demande un password

a++
Commenter la réponse de cod57
Messages postés
75
Date d'inscription
samedi 28 juin 2008
Statut
Membre
Dernière intervention
16 août 2011
0
Merci
Merci c était une question du root...
Merci bcq,

Étudiant
PHP le revolutionnaire, PHP le Conquérant
Commenter la réponse de Lunasoft
Messages postés
2382
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
11
0
Merci
Du Root ?? Quand je développe j'évite de faire appel à Root.
S.
Commenter la réponse de syndrael