Problème PHP

Fermé
nadou - 17 mars 2010 à 16:59
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 18 mars 2010 à 14:37
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.
A voir également:

5 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
17 mars 2010 à 18:57
<?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
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
nadou > nadou
17 mars 2010 à 22:12
<?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
dreustounet Messages postés 21 Date d'inscription jeudi 25 février 2010 Statut Membre Dernière intervention 18 mars 2010 3
17 mars 2010 à 23:19
Bonsoir,
le session_start(); doit être placer avant tout ligne de code !!!!!!!!!
exemple :
<?php
session_start();
.....


Sinon cela ne fonctionnera pas !
0
bonjour,
ce code ne contient pas d'erreur mais ne fonctionne pas, on ne peut pas accéder a ces pages .
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
18 mars 2010 à 08:52
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
18 mars 2010 à 14:37
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