Erreur inattendue... vraiment inattendue...

Résolu
Lunasoft Messages postés 75 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 16 août 2011 - 25 déc. 2010 à 13:22
syndrael Messages postés 2378 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

7 réponses

cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
25 déc. 2010 à 15:42
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>
3
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
27 déc. 2010 à 04:42
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à ;)
3
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
26 déc. 2010 à 10:15
Pas si inattendue que ça alors comme erreur ?? LOL..
0
Lunasoft Messages postés 75 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 16 août 2011
26 déc. 2010 à 13:47
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
26 déc. 2010 à 14:37
bonjour

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

a++
0
Lunasoft Messages postés 75 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 16 août 2011
27 déc. 2010 à 13:42
Merci c était une question du root...
Merci bcq,

Étudiant
PHP le revolutionnaire, PHP le Conquérant
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
27 déc. 2010 à 13:47
Du Root ?? Quand je développe j'évite de faire appel à Root.
S.
0
Rejoignez-nous