Problème PHP
nadou
-
Alain_42 Messages postés 5413 Statut Membre -
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.
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:
- Problème PHP
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour à la ligne php ✓ - Forum PHP
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
5 réponses
<?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>
Bonsoir,
le session_start(); doit être placer avant tout ligne de code !!!!!!!!!
exemple :
<?php
session_start();
.....
Sinon cela ne fonctionnera pas !
le session_start(); doit être placer avant tout ligne de code !!!!!!!!!
exemple :
<?php
session_start();
.....
Sinon cela ne fonctionnera pas !
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
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>
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,.....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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>
<?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 !!!!!!!
//////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