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

Signaler
Messages postés
75
Date d'inscription
samedi 28 juin 2008
Statut
Membre
Dernière intervention
16 août 2011
-
Messages postés
2381
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
-
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

Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
16
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>
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
15
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à ;)
Messages postés
2381
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
14
Pas si inattendue que ça alors comme erreur ?? LOL..
Messages postés
75
Date d'inscription
samedi 28 juin 2008
Statut
Membre
Dernière intervention
16 août 2011

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
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
16
bonjour

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

a++
Messages postés
75
Date d'inscription
samedi 28 juin 2008
Statut
Membre
Dernière intervention
16 août 2011

Merci c était une question du root...
Merci bcq,

Étudiant
PHP le revolutionnaire, PHP le Conquérant
Messages postés
2381
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
14
Du Root ?? Quand je développe j'évite de faire appel à Root.
S.