IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Obtention du message d'erreur : parse error [Fait]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 16
    Points : 9
    Points
    9
    Par défaut Obtention du message d'erreur : parse error
    Bonsoir à tous, voila ma situation :

    J'ai une page index.php qui me permettra d'afficher des news (aucun probs), mais également d'afficher soit le module de login (si l'utilisateur n'est pas encore logué) soit un module d'administration du site (si l'utilisateur est deja logué).

    Voici le code de ma page index.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    <table width="801" height="128" border="1">
      <tr>
        <td><div align="center">Headerz</div></td>
      </tr>
    </table>
    <table width="801" height="532" border="1">
      <tr>
        <td width="227" valign="top"><p>&nbsp;</p>
          <p>...</p></td>
        <td width="407" valign="top"><div align="center">
          <table width="374" border="1">
            <tr>
              <td>
     
    		  <?php 
     
    		  //on récupere les news dans la sql
     
    			$db = mysql_connect ('localhost', 'root', '') or die ('Error');
    		  mysql_select_db ('news',$db);
    		  $req = 'SELECT id, sujet FROM Titre ORDER BY date';
    		  $res = mysql_query($req) or die ('errorz'.mysql_error()); 
     
    		  while ($data = mysql_fetch_array($res))
    		  	{
    			echo $data['sujet'];
    			}
     
    		  mysql_close();		  
     
    		  ?>
    &nbsp;</td>
            </tr>
          </table>
        </div></td>
     
     
    	<?php
     
    	//recuperation du numero de session
     
    if (!session_id()) {
    	if (isset($PHPSESSID)) {
    		$SESSID = $PHPSESSID;
    	}
    }
    else {
    	$SESSID = session_id();
    }
     
    // Si l'utilisateur est deja enregistré, on affiche le menu d'administration
     
    if($SESSID && !isset($_POST['username']) && !isset($_POST['password'])) { session_start($SESSID); } ?>
     
    <p><em>Adminsitration</em></p>
          <table width="200" border="0" id="admin">
            <tr>
              <td height="130"><p><a href="?section=addnews">Add news</a><br />
                  <a href="?section=admins">Manage administrators</a><br />
                  <a href="?section=pics">Manage gallery</a></p>
              <p><a href="logout.php">Logout</a> </p></td>
            </tr>
          </table>      <p>&nbsp;</p>    <td valign="top"></td>
     
    <?php
     
    // Sinon, on affiche le module de login
     (ligne75)	else { 
     
    		?>
    <table width="200" bordel="0" id="logon">
    <tr>
    	  <form id="login" name="user" method="post" action="checklogin.php">
              <label> </label>
              <div align="center">nickname
                <input name="username" type="text" />
              </div>
              <label> </label>
              <div align="center">password
                <input name="password" type="password" />
              </div>
              <div align="center"><br />
              </div>
              <label> </label>
              <div align="center">
                <input type="submit" name="Submit" value="enter" />
              </div>
            </form>
     
    		</tr>
    		</table>
     
    	  <?php } 
     
    	  ?>
     
    <p>&nbsp;</p>
    </body>
    </html>
    et le code de ma page checklogin.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <?php
     
    //demarrage de la session
    session_start(); 
    // initialisation de la variable de login à 0 (false)
    $loginOK = false; 
    //on effectue la verification à condition qu'il y ait des valeurs à traiter
    if (  isset ($_POST) && (!empty($_POST['username'])) && (!empty($_POST['password'])) )
    	{
    		extract ($_POST); 
    		// Connexion à la base de données		
    		$db = mysql_connect ('localhost', 'root', '');
    		mysql_select_db ('mysql',$db);
    		$req = "SELECT username, password, autre FROM users WHERE username ='".$username."' ";
    		$res = mysql_query ($req) or die ('Erreur :'.mysql_error());
     
    			// Verification de l'utilisateur
     
    			if (mysql_num_rows($res) > 0)
    				{
    				$data = mysql_fetch_assoc($res);
     
    			// Verification du mot de passe
     
    			if ($password == $data['password']) 
    				{
    				$loginOK = true;
    				}
    				}
    	}
    // Si tout est OK, on met les données en session
    if ($loginOK)
    	{
    	$_SESSION['username'] = $data['username'];
    	$_SESSION['password'] = $data['password'];
    	$_SESSION['autre'] = $data['autre'];
    	header('Location: ./Unintled-1.php');
    	}
     
    else {
    		echo 'Login / mot de passe incorrect(s), veuillez rééssayer';
    }
    ?>

    et voila l'erreur retournée par mon navigateur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: parse error in ... on line 75
    Merci d'avance pour votre aide

  2. #2
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    la ligne 75 elle correspond à quoi?

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par oceane751
    la ligne 75 elle correspond à quoi?
    Pardon, j'ai oublié de donner cette info, elle se situe dans le "index.php", à cet endroit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Sinon, on affiche le module de login
    		else {            (ligne 75)
     
    		?>

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (mysql_num_rows($res) > 0);
    Si tu ne l'as pas encore trouvé

    D'ailleurs voici une méthode à toujours avoir en tête : Explications et correction de l'erreur 'parse error'

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par Kerod
    Erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (mysql_num_rows($res) > 0);
    Si tu ne l'as pas encore trouvé

    D'ailleurs voici une méthode à toujours avoir en tête : Explications et correction de l'erreur 'parse error'

    mhh pourquoi dont? désolé je ne comprends pas.

    Mais l'erreur que j'o'btiens ne se trouverait-elle pas plutot du coté de l'index.php?

    En fait, si je teste mon checklogin.php séparement ca fonctionne bien, donc ca doit etre un probleme dans le index.php.

    Merci beaucoup

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Tu as déjà vu un if avec un ; à la fin ? Moi jamais. J'en ai déjà vu avec des {} et des instructions dedans mais jamais de ; juste après la parenthèse.

    Par contre c'est possible si c'était avec un while mais c'est pas le cas

  7. #7
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par Kerod
    Tu as déjà vu un if avec un ; à la fin ? Moi jamais. J'en ai déjà vu avec des {} et des instructions dedans mais jamais de ; juste après la parenthèse.

    Par contre c'est possible si c'était avec un while mais c'est pas le cas

    pas bête du tout ;p pas la premiere fois que je fais l'erreur pourtant...

    malheureusement, toujours mon probleme à la ligne 75

    Merci

  8. #8
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Vérifie TOUT tes if il y a toujours des ;

  9. #9
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Petits conseils :
    1. Toujours indenter correctement le code. Ca permet une meilleure lisibilité.
    2. Ne JAMAIS mettre de ; après la parenthèse d'un if, toujours source d'erreurs.
    3. header : toujours Location
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php   
        session_start(); 
        //demarrage de la session   
        $loginOK = false; 
        // initialisation de la variable de login à 0 (false)   
        //on effectue la verification à condition qu'il y ait des valeurs à traiter   
        if ( isset($_POST) && (!empty($_POST['username'])) && (!empty($_POST['password'])) ) 
        {  
            extract ($_POST); // Connexion à la base de données  
            $db = mysql_connect ('localhost', 'root', '');
             mysql_select_db ('mysql',$db); 
            $req = "SELECT username, password, autre FROM users WHERE username ='".$username."' "; 
            $res = mysql_query ($req) or die ('Erreur :'.mysql_error()); // Verification de l'utilisateur  
            if (mysql_num_rows($res) > 0)
            {  
                $data = mysql_fetch_assoc($res); // Verification du mot de passe  
                if ($password == $data['password']) 
                {  
                    $loginOK = true; 
                }  
            }  
        }  // Si tout est OK, on met les données en session   
        if ($loginOK)
        {  
            $_SESSION['username'] = $data['username']; 
            $_SESSION['password'] = $data['password']; 
            $_SESSION['autre'] = $data['autre']; 
            header('Location: ./index.php'); 
        }   
        else 
        {  
            echo 'Login / mot de passe incorrect(s), veuillez rééssayer'; 
        } 
    ?>

  10. #10
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par Kerod
    Petits conseils :
    1. Toujours indenter correctement le code. Ca permet une meilleure lisibilité.
    2. Ne JAMAIS mettre de ; après la parenthèse d'un if, toujours source d'erreurs.
    3. header : toujours Location
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php   
        session_start(); 
        //demarrage de la session   
        $loginOK = false; 
        // initialisation de la variable de login à 0 (false)   
        //on effectue la verification à condition qu'il y ait des valeurs à traiter   
        if ( isset($_POST) && (!empty($_POST['username'])) && (!empty($_POST['password'])) ) 
        {  
            extract ($_POST); // Connexion à la base de données  
            $db = mysql_connect ('localhost', 'root', '');
             mysql_select_db ('mysql',$db); 
            $req = "SELECT username, password, autre FROM users WHERE username ='".$username."' "; 
            $res = mysql_query ($req) or die ('Erreur :'.mysql_error()); // Verification de l'utilisateur  
            if (mysql_num_rows($res) > 0)
            {  
                $data = mysql_fetch_assoc($res); // Verification du mot de passe  
                if ($password == $data['password']) 
                {  
                    $loginOK = true; 
                }  
            }  
        }  // Si tout est OK, on met les données en session   
        if ($loginOK)
        {  
            $_SESSION['username'] = $data['username']; 
            $_SESSION['password'] = $data['password']; 
            $_SESSION['autre'] = $data['autre']; 
            header('Location: ./index.php'); 
        }   
        else 
        {  
            echo 'Login / mot de passe incorrect(s), veuillez rééssayer'; 
        } 
    ?>
    Merci pour ta réponse, j'ai mis à jour le code de checklogin.php dans mon premier post.

    Pas d'idée pour le index.php?

  11. #11
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Ben c'est pas très logique de séparer un else de son if

  12. #12
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    j'ai essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    <table width="801" height="128" border="1">
      <tr>
        <td><div align="center">Headerz</div></td>
      </tr>
    </table>
    <table width="801" height="532" border="1">
      <tr>
        <td width="227" valign="top"><p>&nbsp;</p>
          <p>...</p></td>
        <td width="407" valign="top"><div align="center">
          <table width="374" border="1">
            <tr>
              <td>
     
    <?php 
    //on récupere les news dans la sql
    $db = mysql_connect ('localhost', 'root', '') or die ('Error');
    mysql_select_db ('news',$db);
    $req = 'SELECT id, sujet FROM Titre ORDER BY date';
    $res = mysql_query($req) or die ('errorz'.mysql_error()); 
     
    		  while ($data = mysql_fetch_array($res))
    		  	{
    			echo $data['sujet'];
    			}
     
    		  mysql_close();		  
    ?>
     
    		  &nbsp;</td>
            </tr>
          </table>
        </div></td>
     
    <?php
     
    //recuperation du numero de session
    if (!session_id())
    	{
    	if (isset($PHPSESSID)) 
    		{
    		$SESSID = $PHPSESSID;
    		}
    	}
     
    else {
    	$SESSID = session_id();
    }
    // Si l'utilisateur est deja enregistré, on affiche le menu d'administration
    (LIGNE 57)if($SESSID && !isset($_POST['username']) && !isset($_POST['password'])) (/LIGNE 57)
    	{ 
    	session_start($SESSID); ?>
     
     
    <p><em>Adminsitration</em></p>
          <table width="200" border="0" id="admin">
            <tr>
              <td height="130"><p><a href="?section=addnews">Add news</a><br />
                  <a href="?section=admins">Manage administrators</a><br />
                  <a href="?section=pics">Manage gallery</a></p>
              <p><a href="logout.php">Logout</a> </p></td>
            </tr>
          </table>      <p>&nbsp;</p>    <td valign="top"></td>
     
     
    <?php
    	}	
    // Sinon, on affiche le module de login
    		else { 
    ?>
     
    <table width="200" bordel="0" id="logon">
    <tr>
    	  <form id="login" name="user" method="post" action="checklogin.php">
              <label> </label>
              <div align="center">nickname
                <input name="username" type="text" />
              </div>
              <label> </label>
              <div align="center">password
                <input name="password" type="password" />
              </div>
              <div align="center"><br />
              </div>
              <label> </label>
              <div align="center">
                <input type="submit" name="Submit" value="enter" />
              </div>
            </form>
     
    		</tr>
    		</table>
     
    <?php } 
    ?>
     
    <p>&nbsp;</p>
    </body>
    </html>
    erreur : Notice: Undefined variable: SESSID in ... on line 57

  13. #13
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //recuperation du numero de session
    if (!session_id())
    	{
    	if (isset($PHPSESSID)) 
    		{
    		$SESSID = $PHPSESSID;
    		}
    	}
     
    else {
    	$SESSID = session_id();
    }
    Regardes ce code et analyse le. TOn erreur peut se produire dans un cas vu qu'il est pas traité. Soit tu rajoutes un else au test du isset soit tu mets le test du isset avec celui de la session

Discussions similaires

  1. [PHP 4] Message d'erreur parse error
    Par roy-mustang dans le forum Langage
    Réponses: 2
    Dernier message: 14/12/2009, 13h48
  2. message d'erreur: Parse error
    Par tania.du dans le forum Langage
    Réponses: 2
    Dernier message: 31/03/2009, 19h37
  3. Réponses: 3
    Dernier message: 19/04/2007, 11h34
  4. Message d'erreur : Parse error
    Par mikacontact dans le forum Langage
    Réponses: 3
    Dernier message: 06/12/2006, 13h11
  5. [phpBB][2] Erreur : parse error
    Par TraNXenE200 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 08/04/2006, 13h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo