Problème PHP

nadou -  
Alain_42 Messages postés 5413 Statut Membre -
Bonjour,
on a un balise select dans un formulaire d'inscription :
Situation: </td><td><select name="situation" value="<?php if (isset($_POST['situation'])) echo htmlentities(trim($_POST['situation'])); ?>">
<option value="enseignant">Enseignants</option>
<option value="personnel">Personnels Administratifs</option>
<option value="etudiant">Etudiants</option>
</select></td></tr>
on veut afficher les pages(membre.php,membre1.php..) selon le choix de la balise select:
par ex si un membre a choisi enseignant alors il va acceder a la page membre1.php,
si un membre a choisi personne administratif il va acceder a la page membre.php;
voici mon code mais sa ne marche pas,
if ($data[0] == 1) {
$_SESSION['login'] = $_POST['login'];
session_start();
if ($_POST['situation'] == "enseignant")
{ header('Location: membre1.php'); }
elseif ($_POST['situation'] == "personnel")
{ header('Location: membre.php'); }
else ($_POST['situation'] == "etudiant")
{
header('Location: membre2.php');
}
}
exit();

}
s'il vous plais veuillez proposer une solution. Merci d'avance.
Configuration: Windows Vista / Safari 532.5

5 réponses

  1. Alain_42 Messages postés 5413 Statut Membre 904
     
    <?php
    //////ATTENTION cette partie de code php doit être au tout début de ta page avant toute balise HTML, ni ligne vide !!!!
    //sinon  le header('Location.....   ne marchera pas, tu auras un message d'erreur
    if(isset($_POST['situation'])){ //le choix a ete fait
    	//recup du choix
    	$situation=$_POST['situation'];
    	//on va switcher en fct du choix
    	switch($situation){
    		case 'enseignant':
    			header('Location: membre1.php');
    		break;
    		case 'enseignant':
    			header('Location: membre.php');
    		break;
    		case 'enseignant':
    			header('Location: membre2.php');
    		break;
    	}
    }
    
    ?>
    Situation: </td><td>
    <select  name="situation" >
    <!-- il ne faut pas mettre d'argument value dans la balise select -->
    <option value="enseignant">Enseignants</option>
    <option value="personnel">Personnels Administratifs</option>
    <option value="etudiant">Etudiants</option>
    </select></td></tr>
    0
    1. nadou
       
      voici mon code

      <?php

      // on teste si le visiteur a soumis le formulaire de connexion
      if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
      if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {

      mysql_connect ('localhost', 'root', '');
      mysql_select_db ('base');

      // on teste si une entrée de la base contient ce couple login / pass
      $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass="'.mysql_escape_string(md5($_POST['pass'])).'"';
      $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
      $data = mysql_fetch_array($req);

      mysql_free_result($req);

      // si on obtient une réponse, alors l'utilisateur est un membre
      if ($data[0] == 1) {
      $_SESSION['login'] = $_POST['login'];
      session_start();

      if(isset($_POST['situation'])){ //le choix a ete fait
      //recup du choix
      $situation=$_POST['situation'];
      //on va switcher en fct du choix
      switch($situation){
      case 'enseignant':
      header('Location: membre1.php');
      break;
      case 'enseignant':
      header('Location: membre.php');
      break;
      case 'enseignant':
      header('Location: membre2.php');
      break;
      }
      }
      ?>
      <html>
      <head>
      <title>Accueil</title>
      </head>

      <body>
      <?php include "menu1.php"; ?>
      <div class="art-Block">
      <div class="art-Block-tl"></div>
      <div class="art-Block-tr"></div>
      <div class="art-Block-bl"></div>
      <div class="art-Block-br"></div>
      <div class="art-Block-tc"></div>
      <div class="art-Block-bc"></div>
      <div class="art-Block-cl"></div>
      <div class="art-Block-cr"></div>
      <div class="art-Block-cc"></div>
      <div class="art-Block-body">
      <div class="art-BlockHeader">
      <div class="l"></div>
      <div class="r"></div>
      <div class="art-header-tag-icon">
      <div class="t">Espace Intranet</div>
      </div>
      </div><div class="art-BlockContent">
      <div class="art-BlockContent-body">
      <div>

      <table><form action="intranett.php" method="post">
      <p><tr><td>Login :</td></tr>
      <tr><td><input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"></td></tr>

      <tr><td>Mot de passe : </td></tr>
      <tr><td> <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"></td></tr>

      <tr><td><input type="submit" name="connexion" value="Connexion"></td></tr>
      </p>
      <p><tr><td><a href="inscription.php" >Vous inscrire</a></td></tr>
      <tr><td><?php
      if (isset($erreur)) echo '<br /><br />',$erreur;
      ?></td></tr>
      </p>
      </form></table>
      </div>
      </div>
      </div>
      </div>
      </div>
      <br><br><br>
      </body>
      </html> j ai trouvé une erreur a ce niveau !!!!!!!
      0
      1. nadou > nadou
         
        <?php
        //////ATTENTION cette partie de code php doit être au tout début de ta page avant toute balise HTML, ni ligne vide !!!!
        //sinon le header('Location..... ne marchera pas, tu auras un message d'erreur
        if(isset($_POST['situation'])){ //le choix a ete fait
        //recup du choix
        $situation=$_POST['situation'];
        //on va switcher en fct du choix
        switch($situation){
        case 'enseignant':
        header('Location: membre1.php');
        break;
        case 'enseignant':
        header('Location: membre.php');
        break;
        case 'enseignant':
        header('Location: membre2.php');
        break;
        }
        }

        ?>
        Situation: </td><td>
        <select name="situation" >
        <!-- il ne faut pas mettre d'argument value dans la balise select -->
        <option value="enseignant">Enseignants</option>
        <option value="personnel">Personnels Administratifs</option>
        <option value="etudiant">Etudiants</option>
        </select></td></tr>

        mm ton code possede une erreur dans la fin
        0
  2. dreustounet Messages postés 21 Statut Membre 3
     
    Bonsoir,
    le session_start(); doit être placer avant tout ligne de code !!!!!!!!!
    exemple :
    <?php
    session_start();
    .....

    Sinon cela ne fonctionnera pas !
    0
    1. nadou
       
      bonjour,
      ce code ne contient pas d'erreur mais ne fonctionne pas, on ne peut pas accéder a ces pages .
      0
  3. Alain_42 Messages postés 5413 Statut Membre 904
     
    il te manquait 3 accolades fermantes !
    quand il y a une erruer en fin de code c'est ça en généarl: manque accolades fermantes
    tu as rajouté des if sans la fin

    <?php
    // on teste si le visiteur a soumis le formulaire de connexion
    if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
    	if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
    
    		mysql_connect ('localhost', 'root', '');
    		mysql_select_db ('base');
    
    		// on teste si une entrée de la base contient ce couple login / pass
    		$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass="'.mysql_escape_string(md5($_POST['pass'])).'"';
    		$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    		$nombre_rep=mysql_num_rows($req); //compte le nombre de reponses
    		$data = mysql_fetch_array($req);
    
    		mysql_free_result($req);
    
    		// si on obtient une réponse, alors l'utilisateur est un membre
    		if ($nombre_rep == 1) {
    			session_start(); //il faut mettre session start avant de charger la variable de session
    			$_SESSION['login'] = $_POST['login'];			
    
    			if(isset($_POST['situation'])){ //le choix a ete fait
    				//recup du choix
    				$situation=$_POST['situation'];
    				//on va switcher en fct du choix
    				switch($situation){
    					case 'enseignant':
    					header('Location: membre1.php');
    					break;
    					case 'personnel': //erreur la, je n'avait pas mis le bon
    					header('Location: membre.php');
    					break;
    					case 'etudiant': //erreur la, je n'avait pas mis le bon
    					header('Location: membre2.php');
    					break;
    				}
    			}
    		}
    	}
    } //il manquait 3 accolades 
    ?>
    <html>
    <head>
    <title>Accueil</title>
    </head>
    
    <body>
    <?php include "menu1.php"; ?>
    <div class="art-Block">
    <div class="art-Block-tl"></div>
    <div class="art-Block-tr"></div>
    <div class="art-Block-bl"></div>
    <div class="art-Block-br"></div>
    <div class="art-Block-tc"></div>
    <div class="art-Block-bc"></div>
    <div class="art-Block-cl"></div>
    <div class="art-Block-cr"></div>
    <div class="art-Block-cc"></div> 
    <div class="art-Block-body">
    <div class="art-BlockHeader">
    <div class="l"></div>
    <div class="r"></div>
    <div class="art-header-tag-icon">
    <div class="t">Espace Intranet</div>
    </div>
    </div><div class="art-BlockContent">
    <div class="art-BlockContent-body">
    <div>
    
    <table><form action="intranett.php" method="post">
    <p><tr><td>Login :</td></tr>
    <tr><td><input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"></td></tr>
    
    <tr><td>Mot de passe : </td></tr>
    <tr><td> <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"></td></tr>
    
    <tr><td><input type="submit" name="connexion" value="Connexion"></td></tr>
    </p>
    <p><tr><td><a href="inscription.php" >Vous inscrire</a></td></tr>
    <tr><td><?php
    if (isset($erreur)) echo '<br /><br />',$erreur;
    ?></td></tr>
    </p>
    </form></table>
    </div>
    </div>
    </div>
    </div>
    </div>
    <br><br><br>
    </body>
    </html>
    
    0
  4. nadou
     
    on n'a pas un erreur et la page s'affiche mais on cliquons sur le bouton connexion on ne trouve rien c à d il n'a y pas Access aux pages:membre.php,.....
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Alain_42 Messages postés 5413 Statut Membre 904
     
    J'avais pas vu que tu avais SELECT COUNT donc essayes comme ça:
    <?php
    // on teste si le visiteur a soumis le formulaire de connexion
    if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
    	if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
    
    		mysql_connect ('localhost', 'root', '');
    		mysql_select_db ('base');
    
    		// on teste si une entrée de la base contient ce couple login / pass
    		$sql = 'SELECT COUNT(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass="'.mysql_escape_string(md5($_POST['pass'])).'"';
    		$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    		//$nombre_rep=mysql_num_rows($req); //compte le nombre de reponses
    		$data = mysql_fetch_array($req);
    
    		mysql_free_result($req);
    
    		// si on obtient une réponse, alors l'utilisateur est un membre
    		if ($data[0] == 1) {
    			session_start(); //il faut mettre session start avant de charger la variable de session
    			$_SESSION['login'] = $_POST['login'];			
    
    			if(isset($_POST['situation'])){ //le choix a ete fait
    				//recup du choix
    				$situation=$_POST['situation'];
    				//on va switcher en fct du choix
    				switch($situation){
    					case 'enseignant':
    					header('Location: membre1.php');
    					break;
    					case 'personnel': //erreur la, je n'avait pas mis le bon
    					header('Location: membre.php');
    					break;
    					case 'etudiant': //erreur la, je n'avait pas mis le bon
    					header('Location: membre2.php');
    					break;
    				}
    			}
    		}
    	}
    } //il manquait 3 accolades 
    ?>
    <html>
    <head>
    <title>Accueil</title>
    </head>
    
    <body>
    <?php include "menu1.php"; ?>
    <div class="art-Block">
    <div class="art-Block-tl"></div>
    <div class="art-Block-tr"></div>
    <div class="art-Block-bl"></div>
    <div class="art-Block-br"></div>
    <div class="art-Block-tc"></div>
    <div class="art-Block-bc"></div>
    <div class="art-Block-cl"></div>
    <div class="art-Block-cr"></div>
    <div class="art-Block-cc"></div> 
    <div class="art-Block-body">
    <div class="art-BlockHeader">
    <div class="l"></div>
    <div class="r"></div>
    <div class="art-header-tag-icon">
    <div class="t">Espace Intranet</div>
    </div>
    </div><div class="art-BlockContent">
    <div class="art-BlockContent-body">
    <div>
    
    <table><form action="intranett.php" method="post">
    <p><tr><td>Login :</td></tr>
    <tr><td><input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"></td></tr>
    
    <tr><td>Mot de passe : </td></tr>
    <tr><td> <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"></td></tr>
    
    <tr><td><input type="submit" name="connexion" value="Connexion"></td></tr>
    </p>
    <p><tr><td><a href="inscription.php" >Vous inscrire</a></td></tr>
    <tr><td><?php
    if (isset($erreur)) echo '<br /><br />',$erreur;
    ?></td></tr>
    </p>
    </form></table>
    </div>
    </div>
    </div>
    </div>
    </div>
    <br><br><br>
    </body>
    </html>
    0