Problême de condition PHP!!

Fermé
micka30 Messages postés 102 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 4 juin 2008 - 18 janv. 2008 à 16:42
Xil Messages postés 350 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 11 juin 2009 - 19 janv. 2008 à 13:38
Bonjour,

j'ai un problême avec un lien qui marche pas a cause d'une condition je pense!

enfaite, je me conecte avec mon pseudo et mon mot de passe ,ca me connecte sur cette page, et puis quand je reviend sur accueil et que je passe par le lien pour aller sur cette même page ca m'affiche une page blanche!

je vous montre :








<?php
session_start();
 
    $_SESSION['pseudo'] = $_POST['pseudo'];
 
 
 
        
        // D'abord, on se connecte à MySQL
        mysql_connect("localhost", "root", "");
        mysql_select_db("sitemicka");
        
 
         
         
 
if(isset($_POST) && !empty($_POST['pseudo']) && !empty($_POST['mot_de_passe'])) 
 
{
              $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
              $mot_de_passe = mysql_real_escape_string(htmlspecialchars($_POST['mot_de_passe']));
 
  
  // on recupère le password de la table qui correspond au pseudo du visiteur
  $sql = "select mot_de_passe from infoclients where pseudo='".$pseudo."'";// cette requette veut dire selectionne le mot de passe dans la table infoclients de pseudo
  
  $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
 
  $data = mysql_fetch_assoc($req);
 
  if($data['mot_de_passe'] != $mot_de_passe)
  {
  
    echo '<p>Mauvais pseudo ou mot de passe. Merci de recommencer</p>';include('premierpage.php');// On inclut le formulaire d'identification   exit;}
 
  }
  else 
  {
   if(!isset($_SESSION['pseudo']))
 {  
   echo 'Vous êtes pas autoriser à acceder à cette page. Veuillez vous connectez';  include('premierpage.php');  exit;
 }
 
 elseif (isset ($_SESSION['pseudo']));
  
 
  
 {
  
  ?>
  <!-- Rappel : debut de la page -->
 
   <head><!-- Rappel : debut information d'en tète  -->
 
       <title>âmesoeur.com</title> <br /> <!-- Rappel : titre de la page   -->
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
           <link rel="stylesheet" media="screen" type="text/css" title="Design3" href="design3.css" />
   
 
           
   </head><!-- Rappel : fin information d'en tète  -->
   <body>
  
        <p>
        Salut <?php echo $_SESSION['pseudo']; ?> !<br />
        
        <div id="conteneur">            
                
 
                <ul id="menu">
                        <li><a href="photo2222222.php">Mes photos</a></li>
                        <li><a href="mp.php">Message</a></li>
                        <li><a href="premierpage.php">Accueil</a></li>
                        <li><a href="@@@@@@@@@"></a></li>
                        <li><a href="@@@@@@@@@"></a></li>
                </ul>
                
                <div id="contenu">
                        <h2>Un titre</h2>
                        <p>Un paragraphe</p>
                </div>
                
        
        
        <?php
}
}
}
 
else 
{  
echo '<p>vous avez oublié un champs.</p>';   include('premierpage.php'); // On inclut le formulaire d'identification   exit;}
 
}
?>
 
 
 
</body>
   </html><!-- Rappel : fin de la page -->
A voir également:

3 réponses

Xil Messages postés 350 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 11 juin 2009 257
18 janv. 2008 à 17:12
Quand tu reviens la deuxième vois sur ta page, $_POST['pseudo'] n'existe plus, et quand tu fais
$_SESSION['pseudo'] = $_POST['pseudo'];
ca détruit ta variable $_SESSION['pseudo'];

Déplace ton initialisation de $_SESSION['pseudo'] au niveau de ta requête SQL;
Ca sera déjà ca de réglé.

Ensuite, vérifie tes ouvertures et fermetures d'accolades ({ } ), ca me semble un peu désordonné.
Ca manque un peu de logique dans les tests

session_start();
[ connection mysql ]

//Si on vient du formulaire
if(isset($_POST)){ 
   [ requête sql ]
 if(mysql_num_rows($result_sql) > 0) { //Le pseudo  a été trouvé dans la bdd
     if($mot_de_passe = $data['mot_de_passe']) { //mot de passe correct
          $_SESSION['pseudo'] = $pseudo;
          [ connection réussie, redirect vers cette page ]
     }else{  //Le mot de passe n'est pas bon
          echo 'mot de passe incorrect';
     }
  }else{ // le pseudo n'existe pas
     echo 'pseudo incorrect';
 }
}

//On ne vient pas du formulaire
else {
  if(isset($_SESSION['pseudo']) { //on s'est déjà connecté avec succès
    [ affichage de la page ]
  
  }else { //on ne s'est pas encore connecté
    echo 'vous devez vous connecter';
 }
}

0
micka30 Messages postés 102 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 4 juin 2008 5
18 janv. 2008 à 18:42
merci de ta reponse:!

j'ai fait comme tu ma dit !

il ya une erreur ici :


  include('premierpage.php');
     }
	 else
	 
	 {  //Le mot de passe n'est pas bon
          echo 'mot de passe incorrect';
     }
  }




Parse error: syntax error, unexpected T_ELSE in C:\wamp\www\testsVRAI\mapageperso.php on line 28



<?php
session_start();

// D'abord, on se connecte à MySQL
        mysql_connect("localhost", "root", "");
        mysql_select_db("sitemicka");
        

//Si on vient du formulaire
if(isset($_POST))
{ 
    $sql = "select mot_de_passe from infoclients where pseudo='".$pseudo."'";// cette requette veut dire selectionne le mot de passe dans la table infoclients de pseudo
  
  $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
 
  $data = mysql_fetch_assoc($req);
   
   
   if($data['mot_de_passe'] != $mot_de_passe) { //Le pseudo  a été trouvé dans la bdd
     
	 { //mot de passe correct
         
		 $_SESSION['pseudo'] = $pseudo;	 
		 
       include('premierpage.php');
     }
	 else
	 
	 {  //Le mot de passe n'est pas bon
          echo 'mot de passe incorrect';
     }
  }
  else
  { // le pseudo n'existe pas
     echo 'pseudo incorrect';
 }
}

//On ne vient pas du formulaire
else {
  if(isset($_SESSION['pseudo']) { //on s'est déjà connecté avec succès
?>




 
		  <!-- Rappel : debut de la page -->
 
   <head><!-- Rappel : debut information d'en tète  -->
 
       <title>âmesoeur.com</title> <br /> <!-- Rappel : titre de la page   -->
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
           <link rel="stylesheet" media="screen" type="text/css" title="Design3" href="design3.css" />
   
 
           
   </head><!-- Rappel : fin information d'en tète  -->
   <body>
  
        <p>
        Salut <?php echo $_SESSION['pseudo']; ?> !<br />
        
        <div id="conteneur">            
                
 
                <ul id="menu">
                        <li><a href="photo2222222.php">Mes photos</a></li>
                        <li><a href="mp.php">Message</a></li>
                        <li><a href="premierpage.php">Accueil</a></li>
                        <li><a href="@@@@@@@@@"></a></li>
                        <li><a href="@@@@@@@@@"></a></li>
                </ul>
                
                <div id="contenu">
                        <h2>Un titre</h2>
                        <p>Un paragraphe</p>
                </div>
<?php
}else { //on ne s'est pas encore connecté
    echo 'vous devez vous connecter';
 }
}

?>
</body>
   </html><!-- Rappel : fin de la page -->
</code>
0
Xil Messages postés 350 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 11 juin 2009 257
19 janv. 2008 à 13:38
Tu as mal copié cette partie :
if(mysql_num_rows($result_sql) > 0) { //Le pseudo  a été trouvé dans la bdd
     if($mot_de_passe = $data['mot_de_passe']) { //mot de passe correct


;)
0