Votre question

[PHP] Probleme code $_SESSION

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
29 Août 2006 11:18:00

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" rel="nofollow" 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

29 Août 2006 11:32:04

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é.
29 Août 2006 11:53:33

je test
Contenus similaires
Pas de réponse à votre question ? Demandez !
29 Août 2006 11:54:48

Non, meme avec ça, toujours la meme erreur : Parse error: parse error, unexpected $ in /homepages/14/d169039227/htdocs/veriflogin.php on line 111
29 Août 2006 11:58:00

c'est laquelle la ligne 111
29 Août 2006 12:03:56

Manque une aussi apres (...) extract($_POST);}<----- ici !
a c 145 L Programmation
29 Août 2006 12:06:17

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. ?>
29 Août 2006 12:19:32

ca a vu d'oeil je dirais que c'est encore le bordel des if ?
a c 145 L Programmation
29 Août 2006 12:56:04

bien sur, il ne ferme jamais ses accolades.
29 Août 2006 13:20:58

si, mais pas toutes.
29 Août 2006 13:41:03

Meme avec ca, toujours la meme erreur : ligne 111 ( pour okinou c'est la derniere de la page : </html> )
29 Août 2006 14:25:54

reformate ton code de cette manière tu t'y retrouveras mieux ( et moi aussi ^^ )

if( ta condition)
{
traitement 1
}
else
{
traitement 2
}
29 Août 2006 14:50:43

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 !';
}
29 Août 2006 15:08:43

oula quelle horeur kymic.

Pour une bonne structure pour la lecture c'est :

if () {

} else {

}
a c 145 L Programmation
29 Août 2006 16:24:29

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
Anonyme
29 Août 2006 16:52:33

slt
je suis aller voir ton formulaire d'inscription et j'ai remarqué que l'on peut cocher Homme et Femme en meme temps
bon c'était tou
a++
a c 232 L Programmation
29 Août 2006 17:11:00

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...)
a c 145 L Programmation
29 Août 2006 17:22:57

oui, bien sûr, mais chacun fait bien comme il l'entend.
Moi-même, comme je l'ai dit plus haut, je préfère la notation que préconise okinou, mais j'en connais beaucoup qui préfèrent la notation C.
29 Août 2006 18:02:54

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 :) 
29 Août 2006 18:06:31

bha apres chacun fait comme il veut... Mais moi à l'IUT on m'a appris de cette manière ( avec le C++ ) donc je suis habitué et je trouves que c'est beaucoup plus clair.....
a c 145 L Programmation
29 Août 2006 19:39:24

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)
a c 232 L Programmation
29 Août 2006 19:41:38

moi je préfère la méthode :
  1. $mavariable = (isset($toto)) ? "toto" : "tata";
14 Juin 2008 10:34:32

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 :) 
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS