Se connecter avec
S'enregistrer | Connectez-vous

[PHP] Probleme code $_SESSION

Dernière réponse : dans Programmation

Bonjour,

Voila j'ai un petit probleme, j'ai réalisé un formulaire d'inscription sur mon site il marche. Il inscrit dans la base de donée MySQL : ( dans l'ordre ) :
- Nom - Prenom - Pseudo - Email - Password - Homme - Femme. ( si c'est un homme il inscrit homme dans le champ homme, si c'est une femme il inscrit femme dans le champ femme ).

Seulement maintenant je fait une page de connection. J'ai mon code html qui marche correctement ( formconect.html ), il est inseré en include sur la page connection.php, et il poste les donnés dans veriflogin.php . Je vous donne le code :
  1. <form id="form2" name="form2" method="post" action="<a href="http://www.tulkadream.com/veriflogin.php" target="_blank">http://www.tulkadream.com/veriflogin.php</a>">
  2. <table border="0" width="400" align="center">
  3. <tr>
  4. <td width="200"><b>Pseudo </b></td>
  5. <td width="200">
  6. <input name="Pseudo" type="text" id="Pseudo"> </td>
  7. </tr>
  8. <tr>
  9. <td width="200"><strong>Password </strong></td>
  10. <td width="200">
  11. <input name="Password" type="password" id="Password"> </td>
  12. </tr>
  13. <tr>
  14. <td colspan="2"><div align="center">
  15. <input type="submit" name="submit" value="Login">
  16. </div></td>
  17. </tr>
  18. </table>
  19. </form>

Apres il est inclu sur une page avec : <? require "formconect.html" ?>

Et voila la page PHP verif login :
  1. <?
  2. mysql_connect("*****", "******", "******");
  3. mysql_select_db("******");
  4. session_start();
  5. $loginOK = false;
  6. if ( isset($_POST) && (!empty($_POST['Pseudo'])) && (!empty($_POST['Password'])) ) {
  7. extract($_POST);
  8. $sql = "SELECT Nom, Prenom, Pseudo, Email, Password FROM membres WHERE Pseudo = '".addslashes($Pseudo)."'";
  9. $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
  10. if (mysql_num_rows($req) > 0) {
  11. $data = mysql_fetch_assoc($req);
  12. if ($Password == $data['Password']) {
  13. $loginOK = true;
  14. if ($loginOK) {
  15. $_SESSION['Pseudo'] = $data['Pseudo'];
  16. $_SESSION['Prenom'] = $data['Prenom'];
  17. $_SESSION['Nom'] = $data['Nom'];
  18. $_SESSION['Email'] = $data['Email'];
  19. }
  20. else {
  21. echo 'Une erreur est survenue, veuillez réessayer !';
  22. }
  23. mysql_close();
  24. ?>

Lors de l'execution du programme, une erreur apparait :

Parse error: parse error, unexpected $ in /homepages/14/d169039227/htdocs/veriflogin.php on line 111

( La ligne 111 est la derniere ligne de mon code de la page : </html> )

Comment résoudre mon probleme.

Je vous remercie d'avance !

TidusX

Autres pages sur : php probleme code session

Lassé par la pub ? Créez un compte

CORRECTION :
  1. <?
  2. mysql_connect("*****", "******", "******");
  3. mysql_select_db("******");
  4. session_start();
  5. $loginOK = false;
  6. if ( isset($_POST) && (!empty($_POST['Pseudo'])) && (!empty($_POST['Password'])) ) {
  7. extract($_POST);
  8. $sql = "SELECT Nom, Prenom, Pseudo, Email, Password FROM membres WHERE Pseudo = '".addslashes($Pseudo)."'";
  9. $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
  10. if (mysql_num_rows($req) > 0) {
  11. $data = mysql_fetch_assoc($req);
  12. if ($Password == $data['Password']) {
  13. $loginOK = true;}<------------------- ici !!
  14. if ($loginOK) {
  15. $_SESSION['Pseudo'] = $data['Pseudo'];
  16. $_SESSION['Prenom'] = $data['Prenom'];
  17. $_SESSION['Nom'] = $data['Nom'];
  18. $_SESSION['Email'] = $data['Email'];
  19. }
  20. else {
  21. echo 'Une erreur est survenue, veuillez réessayer !';
  22. }
  23. mysql_close();
  24. ?>



tu n'as pas fermé une de tes condition "if," regarde j'ai corrigé.
Expert Programmation

Voici le code que t'as donné guizmo16 proprement indenté, tu verras surement ton erreur:
  1. <?
  2. mysql_connect("*****", "******", "******" );
  3. mysql_select_db("******" );
  4. session_start();
  5. $loginOK = false;
  6. if ( isset($_POST) && (!empty($_POST['Pseudo'])) && (!empty($_POST['Password'])) ) {
  7. extract($_POST);
  8. $sql = "SELECT Nom, Prenom, Pseudo, Email, Password FROM membres WHERE Pseudo = '".addslashes($Pseudo)."'";
  9. $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
  10. if (mysql_num_rows($req) > 0) {
  11. $data = mysql_fetch_assoc($req);
  12. if ($Password == $data['Password']) {
  13. $loginOK = true;
  14. }
  15. if ($loginOK) {
  16. $_SESSION['Pseudo'] = $data['Pseudo'];
  17. $_SESSION['Prenom'] = $data['Prenom'];
  18. $_SESSION['Nom'] = $data['Nom'];
  19. $_SESSION['Email'] = $data['Email'];
  20. } else {
  21. echo 'Une erreur est survenue, veuillez réessayer !';
  22. }
  23. mysql_close();
  24. ?>

Merci j'ai trouvé l'erreur, merci kymic et les autres ! c'etais bien les if :
session_start();
$loginOK = false;
if (
isset($_POST) && (!empty($_POST['Pseudo'])) && (!empty($_POST['Password'])) ) {
extract($_POST);
}
$sql = "SELECT Nom, Prenom, Pseudo, Email, Password FROM membres WHERE Pseudo = '".addslashes($Pseudo)."'";
$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
if (mysql_num_rows($req) > 0)
{
$data = mysql_fetch_assoc($req);
}
if ($Password == $data['Password'])
{
$loginOK = true;
}
if ($loginOK)
{
$_SESSION['Pseudo'] = $data['Pseudo'];
$_SESSION['Prenom'] = $data['Prenom'];
$_SESSION['Nom'] = $data['Nom'];
$_SESSION['Email'] = $data['Email'];
} else
{
echo 'Une erreur est survenue, veuillez réessayer !';
}
Expert Programmation

non, un habitué du C te diras l'inverse.
Et même si je préfère la même structure que toi, la structure "C" à l'avantage de pouvoir (par exemple) commenter le if:
if () // on vérifie que $a est égal à $b
{

}
else // tiens, c'est l'autre cas
{

} // on vient de finir le if
Expert Programmation

crazycat@idn a dit :
non, un habitué du C te diras l'inverse.
Et même si je préfère la même structure que toi, la structure "C" à l'avantage de pouvoir (par exemple) commenter le if:
if () // on vérifie que $a est égal à $b
{

}
else // tiens, c'est l'autre cas
{

} // on vient de finir le if


On peut quand même commenter le if si on met le { après le if() (en PHP tout du moins...)
Expert Programmation

Effectivement, autant pour moi, j'ai toujours cru que la base etait

if() {

}

Je viens d'aller lire des exemple de C et effectivement, l'accolade est après. (Je n'ai jamais touché au C).

Mais question lisibilité, il est plus beau de bien faire les tabulation des if avec les acollade bien présente, pour ma part :) 
Expert Programmation

ce qui compte, c'est que ça marche et qu'on arrive à lire le code.
Allez, la prochaine fois je vous fait le:
  1. if ($a = $b) :
  2. ...
  3. ...
  4. break;
  5. elseif ($a > $b) :
  6. ...
  7. ...
  8. break;
  9. else :
  10. ...
  11. ...
  12. break;

désolé (musique "la blague à Denisot" (c)Les guignols)

Ca c'est pour les petites conditions, c'est vrai que c'est pratique. sinon pour l'indentation, perosnnelement, ce que je trouve le plus lisible c'est ça :

if (condition)
{
if (condition 2)
{

}
else
{

}
}
else
{

}

Ca a l'avantage d'être clair et ouvert, moins tassé. Surtout qu'avec Notepad++, on voit les lignes du guide d'indentation et on peut trouver toute de suite la/les condition(s) qui se trouvent avant un traitement. Mais comme l'a bien dit Crazycat@idn : "ce qui compte, c'est que ça marche et qu'on arrive à lire le code.".

Mon avis, à plus :) 
Lassé par la pub ? Créez un compte
Tom's guide dans le monde