Formaulaire de login PHP + Session

Résolu/Fermé
DAG - 29 juil. 2008 à 18:06
 anonymous - 2 mai 2010 à 22:30
Bonjour, j'ai un soucis avec un formulaire de login PHP.
Voici le code (je l'est trouvé à l'adresse suivante : http://www.phpdebutant.org/article47.php

Fichier HTML :

<form action="login.php" method='post'>
<table align="center" border="0">
  <tr>
    <td>Login :</td>
    <td><input type="text" name="login" maxlength="250"></td>
  </tr>
  <tr>
    <td>Password</td>
    <td><input type="password"name="pass" maxlength="10"></td>
  </tr>
  <tr>
    <td colspan="2" align="center"><input type="submit" value="log in"></td>
  </tr>
</table>
</form> 


Fichier PHP :

<?
$serveur = "localhost";
$nom_base = "utilisateur";
$login = "root"; 
$pwd =""; 

mysql_connect ($serveur,$login,$pwd) or die ("ERREUR " . mysql_error());
mysql_select_db ($nom_base) or die ("ERREUR " . mysql_error());

if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) 
{
  extract($_POST);
  $sql = "SELECT pwd FROM tbl_user where login=\"$login\";";
  echo $sql;
  $req = mysql_query($sql) or die("Erreur SQL !<br>" . $sql . "<br>" . mysql_error());

  $data = mysql_fetch_assoc($req);

  if($data['pwd'] != $pass) 
  {
    echo "<p>Mauvais login / password. Merci de recommencer</p>";
    include('login.html'); 
    exit;
  }
  else 
  {
    session_start();
    $_SESSION['login'] = $login;
    echo "Vous etes bien logué";
  }   
}
else 
{
  echo "<p>Vous avez oublié de remplir un champ.</p>";
   include('login.html'); // On inclut le formulaire d'identification
   exit;
}
?>



ça m'a l'air d'être un truc bateau comme tout ... mais pourtant lorsque j'essais de me logger il m'affiche :

" . $sql . "
" . mysql_error()); $data = mysql_fetch_assoc($req); if($data['pwd'] != $pass) { echo "

Mauvais login / password. Merci de recommencer
"; include('login.html'); // On inclut le formulaire d'identification exit; } else { session_start(); $_SESSION['login'] = $login; echo "Vous etes bien logué"; // ici vous pouvez afficher un lien pour renvoyer // vers la page d'accueil de votre espace membres } } else { echo "

Vous avez oublié de remplir un champ.
"; include('login.html'); // On inclut le formulaire d'identification exit; } ?>



Quelqu'un aurai-t-il une idée ? C'est vraiment bizarre, je ne vois pas ou est l'erreur !

5 réponses

brothergas6 Messages postés 2 Date d'inscription mardi 29 juillet 2008 Statut Membre Dernière intervention 29 juillet 2008 1
29 juil. 2008 à 19:33
IL Y A UNE ERREUR DE SYNTAXE QUI S'EST GLISSE DANS TON SCRIPT AU LIEU DE: or die("Erreur MySQL :".mysql_error()); TU AS PLUSTOT : or die("Erreur SQL !<br>" . $sql . "<br>" . mysql_error());
1
L'erreur est au début du code PHP.
Il ne faut pas oublier de mettre <?php au lieu de <?

Voila...
0
Ah oui merci beaucoup, je rectifie le tir !

A+
0
[quote]L'erreur est au début du code PHP.
Il ne faut pas oublier de mettre <?php au lieu de <?

Voila...
[/quote]

Mais lol... quand on connait pas on dit rien !!

<? et <?php c'est interprété exactement de la même façon !!, l'erreur ne vient pas du tout de là!
0
ta réflexion vaut pour toi aussi ...

tout dépends de la configuration de ton serveur php plus particulièrement de la variable "short_open_tag" dans ton php.ini bien qu'étant par défaut sur on, tu peux pour des raison de plus grande compatibilité la mettre sur off personnellement je la désactive ;)
0

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

Posez votre question
Ben je pensais aussi, mais si tu regardes bien le fichier php.ini il y a une option short_open_tag qui est par défaut a OFF. Cependant si tu la mets a ON il ne veut plus de <? et préfère largement <?php ;-)

C'était une erreur à la con genre oublis de ";" !! C'est assez énervant ces erreurs !
0
j'avais pas lu jusqu'au bout ^^ dans la dernière bouture de PHP la variable en question est par défaut à on ^^ plus à off... si tu mets short_open_tag à on tu autorise l'ouverture du code php par un short tag, <? ^^ short_open_tag=off t'oblige à utiliser la version longue ^^, <?php

voilà ceci pour éclaircir un point, que tu a soulever car dans ton poste tu semblais dire que short_open_tag=on empêchait l'ouverture par le short tag ;)
0