Else if bloque

Résolu
Bonjour,

Voila mon code sa bug grave un petit eclaississement ?

<?php include('header.php'); ?>
 <TITLE>Connection</TITLE>
 <?php
 $salt = "";
$salta = "";
$saltb = "";
 
?>
 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link href="style.css" rel="stylesheet" title="Style" />
        <title>Connection</title>
    </head>
    <body>
        <div class="header">
        </div>
       
        <?php
 
//Si lutilisateur est connecte, on le deconecte
if(isset($_SESSION['username']))
{
?>
 
Vous etes deja connecté
<?php
mysql_connect('££', '$$', '$$');
mysql_select_db('^^');
 
 
?>
 
     
     
 
 
<?php
 
}
else
{
     
    //On verifie si le formulaire a ete envoye
    if(isset($_POST['username'], $_POST['password']))
    {
        //On echappe les variables pour pouvoir les mettre dans des requetes SQL
        if(get_magic_quotes_gpc())
        {
            $username = stripslashes($_POST['username']);
            $password = stripslashes($_POST['password']);  
            $password_crypta = sha1(sha1($password).$salta);
            $password_crypti = sha1(sha1($password_crypta).$saltb);
            $password_crypte = sha1(sha1($password_crypti).$salt);     
        }
        else
        {
            $username = $_POST['username'];
            $password = $_POST['password'];
        }
        //On recupere le mot de passe de lutilisateur
        $req = mysql_query('select password, id, username from users where username="'.$username.'"');
        $dn = mysql_fetch_array($req);
        $reqp = mysql_query('select ok from users where username="'.$username.'"');
        $dnp = mysql_fetch_array($reqp);
        //On le compare a celui quil a entre et on verifie si le membre existe
                            $password_crypta = sha1(sha1($password).$salta);
                             
                            $password_crypte = sha1(sha1($password_crypta).$salt);
 
        if($dn['password']==$password_crypte and mysql_num_rows($req)>0 and $dnp['ok']==1)
        {
            //Si le mot de passe es bon, on ne vas pas afficher le formulaire
            $form = false;
            //On enregistre son pseudo dans la session username et son identifiant dans la session userid
            $_SESSION['username'] = $dn['email'];
            $_SESSION['userid'] = $dn['id'];
             
 
 
         
?>
<table width="25%" border ="1" align="center" cellspacing="1" cellpadding="1"><tr><td><div align=center>
<div class="message">Vous avez bien été connecté.<br /></div></td><tr></table>
<script language="javascript">
function go() {
    window.location="index.php";
}
tempo=setTimeout("go()", 1);     // temps en miliseconde
</script>
 
<a href="<?php echo $url_home; ?>">Accueil</a></div>
 
 
<?php
        }
        else
        {
            //Sinon, on indique que la combinaison nest pas bonne
            $form = true;
            $message = '<font color="red">La combinaison que vous avez entré n\'est pas bonne.</br>';
        }
    }
             
        else
        {
            //Sinon, on indique que la combinaison nest pas bonne
            $form = true;
            $message = '<font color="red">Votre compte n\'est pas activé.</br>';
        }
    }
    else
    {
        $form = true;
    }
    if($form)
    {
        //On affiche un message sil y a lieu
    if(isset($message))
    {
        echo '<div class="message">'.$message.'</div>';
    }
    //On affiche le formulaire
?>
 
<div class="content">
    <form action="connexion.php" method="post">
    <table width="50%" align="center" border ="1" cellspacing="1" cellpadding="1"><tr><td><div align=center>
        Veuillez entrer vos identifiants pour vous connecter:<br /></br>
        <div class="center">
            <label for="username">Email:</label></br><input type="text" name="username" id="username" value="<?php echo htmlentities($ousername, ENT_QUOTES, 'UTF-8'); ?>" /><br /> </br>
            <label for="password">Mot de passe:</label></br><input type="password" name="password" id="password" /><br />
            <input type="submit" value="Connection" />&nbsp;|&nbsp;<a href="inscription.php">Inscription</a>
            </div></td><tr></table>
         
    </form>
 
<?php
    }
}
?>
  
  
 <?php include('footer.php'); ?>


et la partie ou j'ai besoin de votre aide:

<?php
        }
        else
        {
            //Sinon, on indique que la combinaison nest pas bonne
            $form = true;
            $message = '<font color="red">La combinaison que vous avez entré n\'est pas bonne.</br>';
        }
    }
             
        else
        {
            //Sinon, on indique que la combinaison nest pas bonne
            $form = true;
            $message = '<font color="red">Votre compte n\'est pas activé.</br>';
        }
    }
    else
    {
        $form = true;
    }
    if($form)
    {
        //On affiche un message sil y a lieu
    if(isset($message))
    {
        echo '<div class="message">'.$message.'</div>';
    }
    //On affiche le formulaire
?>


Merci d'avance

6 réponses

  1. Contributeur
    Tu voudrais pas nous dire le bug exact au lieu de dire "sa bug grave" ?
    Et nous indique la ligne exacte également...
    1. Apprends à mieux indenter, à coder (ouverture et fermeture de balises surtout), à ne pas fermer et ouvrir tes balises php juste pour 1 ligne de code html, tu vas t'embrouiller à coup sûr !

      Copie/colle ce code, tu t'y retrouvera un peu mieux je pense ...
      <?php include('header.php'); $salt = ""; $salta = ""; $saltb = "";?>
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">
          <head>
      	<TITLE>Connection</TITLE>
              <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
              <link href="style.css" rel="stylesheet" title="Style" />
              <title>Connection</title>
          </head>
          <body>
              <div class="header">
              </div>
             
      <?php
       
      //Si lutilisateur est connecte, on le deconecte
      if(isset($_SESSION['username']))
      	{
      	echo 'Vous etes deja connecté';
      	mysql_connect('££', '$$', '$$');
      	mysql_select_db('^^');
      	}
      else
      {
           
          //On verifie si le formulaire a ete envoye
          if(isset($_POST['username'], $_POST['password']))
          {
              //On echappe les variables pour pouvoir les mettre dans des requetes SQL
              if(get_magic_quotes_gpc())
              {
                  $username = stripslashes($_POST['username']);
                  $password = stripslashes($_POST['password']);  
                  $password_crypta = sha1(sha1($password).$salta);
                  $password_crypti = sha1(sha1($password_crypta).$saltb);
                  $password_crypte = sha1(sha1($password_crypti).$salt);     
              }
              else
              {
                  $username = $_POST['username'];
                  $password = $_POST['password'];
              }
              //On recupere le mot de passe de lutilisateur
              $req = mysql_query('select password, id, username from users where username="'.$username.'"');
              $dn = mysql_fetch_array($req);
              $reqp = mysql_query('select ok from users where username="'.$username.'"');
              $dnp = mysql_fetch_array($reqp);
              //On le compare a celui quil a entre et on verifie si le membre existe
                                  $password_crypta = sha1(sha1($password).$salta);
                                   
                                  $password_crypte = sha1(sha1($password_crypta).$salt);
       
              if($dn['password']==$password_crypte and mysql_num_rows($req)>0 and $dnp['ok']==1)
              {
                  //Si le mot de passe es bon, on ne vas pas afficher le formulaire
                  $form = false;
                  //On enregistre son pseudo dans la session username et son identifiant dans la session userid
                  $_SESSION['username'] = $dn['email'];
                  $_SESSION['userid'] = $dn['id'];
                   
      			 
      echo '<table width="25%" border ="1" align="center" cellspacing="1" cellpadding="1"><tr><td><div align=center>
      <div class="message">Vous avez bien été connecté.<br /></div></td><tr></table>
      <meta http-equiv="refresh" content="1; index.php">
       
      <a href="<?php echo $url_home; ?>">Accueil</a></div>';
      		}
              else
              {
                  //Sinon, on indique que la combinaison nest pas bonne
                  $form = true;
                  $message = '<font color="red">La combinaison que vous avez entré n\'est pas bonne.</br>';
              }
          }
                   
              else
              {
                  //Sinon, on indique que la combinaison nest pas bonne
                  $form = true;
                  $message = '<font color="red">Votre compte n\'est pas activé.</br>';
              }
      }
      
      //Ton problème se situe ici, vérifie ton code et tes If/Else mal placés !!
          else
          {
              $form = true;
          }
          if($form)
          {
              //On affiche un message sil y a lieu
          if(isset($message))
          {
              echo '<div class="message">'.$message.'</div>';
          }
          //On affiche le formulaire
       
      echo '<div class="content">
          <form action="connexion.php" method="post">
          <table width="50%" align="center" border ="1" cellspacing="1" cellpadding="1"><tr><td><div align="center">
              Veuillez entrer vos identifiants pour vous connecter:<br /></br>
              <div class="center">
                  <label for="username">Email:</label></br><input type="text" name="username" id="username" value="<?php echo htmlentities($ousername, ENT_QUOTES, "UTF-8"); ?>" /><br /> </br>
                  <label for="password">Mot de passe:</label></br><input type="password" name="password" id="password" /><br />
                  <input type="submit" value="Connection" /><a href="inscription.php">Inscription</a>
                  </div></div></td></tr></table>
      </form>
      </div>';
          }
      
      include('footer.php'); ?>
      </body></html>
      1. merci <3
    2. Parse error: syntax error, unexpected T_ELSE in /htdocs/connexion.php on line 119
      1. Contributeur
        Comme on sait pas quelle est la ligne en question... ni ce qu'il y a avant c'est difficile de répondre.

        A mon avis, il manque ou il y a un } en trop.
        1. mais lequel et ou ?
        2. Contributeur
          "Comme on sait pas quelle est la ligne en question... ni ce qu'il y a avant c'est difficile de répondre. "
        3. c'est avant le if($form) je crois
      2. bonjour,

        à l'origine c'est un beau code que tu as modifié à ton aise
        mais un peu compliqué à suivre avec les if et les else
        et si il manque un { ou }

        bin là c'est cherché une aiguille ds une botte de foin

        faut prendre l'habitude de tester ligne par ligne
        ce que tu fais

        si je mets un if est ce qu'il fonctionne ???
        après test il fonctionne, alors je continue
        etc

        bonne chance