Problème if else header
Résolu
bryce78
Messages postés
27
Date d'inscription
Statut
Membre
Dernière intervention
-
bryce78 Messages postés 27 Date d'inscription Statut Membre Dernière intervention -
bryce78 Messages postés 27 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis en train de réaliser un site avec une partie où l'utilisateur qui se logue est renvoyé sur une page bien précise, celle qui correspond à cet utilisateur. Pour cela je souhaite utiliser un if, else if et header mais je n'y parvient pas.
Voici mon code:
<?php
require("conf.php");
/*-----------------------------------------------------------------*/
/* PROGRAMME PRINCIPAL */
/*-----------------------------------------------------------------*/
// CONNEXION A LA BASE DE DONNEE
$db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
if(!$db_link) {echo "Connexion impossible à la base de données <b>".$sql_bdd."</b> sur le serveur <b>".$sql_server."</b><br>Vérifiez les paramètres du fichier conf.php"; exit;}
if (isset($_POST['pseudo_membre']) and isset($_POST['passe_membre'])) {
$pseudo_membre=$_POST['pseudo_membre'];
$passe_membre=$_POST['passe_membre'];
// ON SELECTIONNE L'ENREGISTREMENT CONTENANT LE LOGIN ET
// MOT DE PASSE SAISIS A LA PAGE INDEX.HTM
$requete=mysql_select_db($sql_bdd,$db_link);
$requete=mysql_query("select pseudo,passe from membre where pseudo=\"$pseudo_membre\" and passe=\"$passe_membre\"") or die(mysql_error());
// SI AUCUN ENREGISTREMENT NE CORRESPOND
if(mysql_num_rows($requete)==0)
{
header("Location:$url_erreur");}
else { if($pseudo=="usinage")
header("Location:inter-atelier.php");}
else { if($pseudo=="logistique")
header("Location:inter_logistique.php");}
else { if($pseudo=="moulage")
header("Location:inter-atelier.php");}
else { if($pseudo=="lambda")
header("Location:atelier.php");}
else { if($pseudo=="peinture")
header("Location:inter-atelier.php");}
// DECONNEXION MYSQL
mysql_close($db_link);
?>
Lorsque le pseudo et le passe sont juste, c'est toujours la page inter-atelier.php qui s'affiche.
Je ne comprends pas pourquoi.
Merci de votre aide
Je suis en train de réaliser un site avec une partie où l'utilisateur qui se logue est renvoyé sur une page bien précise, celle qui correspond à cet utilisateur. Pour cela je souhaite utiliser un if, else if et header mais je n'y parvient pas.
Voici mon code:
<?php
require("conf.php");
/*-----------------------------------------------------------------*/
/* PROGRAMME PRINCIPAL */
/*-----------------------------------------------------------------*/
// CONNEXION A LA BASE DE DONNEE
$db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
if(!$db_link) {echo "Connexion impossible à la base de données <b>".$sql_bdd."</b> sur le serveur <b>".$sql_server."</b><br>Vérifiez les paramètres du fichier conf.php"; exit;}
if (isset($_POST['pseudo_membre']) and isset($_POST['passe_membre'])) {
$pseudo_membre=$_POST['pseudo_membre'];
$passe_membre=$_POST['passe_membre'];
// ON SELECTIONNE L'ENREGISTREMENT CONTENANT LE LOGIN ET
// MOT DE PASSE SAISIS A LA PAGE INDEX.HTM
$requete=mysql_select_db($sql_bdd,$db_link);
$requete=mysql_query("select pseudo,passe from membre where pseudo=\"$pseudo_membre\" and passe=\"$passe_membre\"") or die(mysql_error());
// SI AUCUN ENREGISTREMENT NE CORRESPOND
if(mysql_num_rows($requete)==0)
{
header("Location:$url_erreur");}
else { if($pseudo=="usinage")
header("Location:inter-atelier.php");}
else { if($pseudo=="logistique")
header("Location:inter_logistique.php");}
else { if($pseudo=="moulage")
header("Location:inter-atelier.php");}
else { if($pseudo=="lambda")
header("Location:atelier.php");}
else { if($pseudo=="peinture")
header("Location:inter-atelier.php");}
// DECONNEXION MYSQL
mysql_close($db_link);
?>
Lorsque le pseudo et le passe sont juste, c'est toujours la page inter-atelier.php qui s'affiche.
Je ne comprends pas pourquoi.
Merci de votre aide
A voir également:
- Problème if else header
- 400 bad request request header or cookie too large - Forum Windows
- If exist ✓ - Forum Autoit / batch
- The realtek network controller was not found. if deep sleep mode is enabled please plug the cable ✓ - Forum Pilotes (drivers)
- {Batch} IF NOT EXIST <mon folder> ne fonctionne pas ✓ - Forum Autoit / batch
- IF EXIST dans un ".bat" - Forum Programmation
3 réponses
Merci de ta réponse Meoran, mais ça ne fonctionne toujours pas.
Voici mon code avec les modifs dont tu parles:
<?php
require("conf.php");
/*-----------------------------------------------------------------*/
/* PROGRAMME PRINCIPAL */
/*-----------------------------------------------------------------*/
// CONNEXION A LA BASE DE DONNEE
$db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
if(!$db_link) {echo "Connexion impossible à la base de données <b>".$sql_bdd."</b> sur le serveur <b>".$sql_server."</b><br>Vérifiez les paramètres du fichier conf.php"; exit;}
if (isset($_POST['pseudo_membre']) and isset($_POST['passe_membre'])) {
$pseudo_membre=$_POST['pseudo_membre'];
$passe_membre=$_POST['passe_membre'];
// ON SELECTIONNE L'ENREGISTREMENT CONTENANT LE LOGIN ET
// MOT DE PASSE SAISIS A LA PAGE INDEX.HTM
$requete=mysql_select_db($sql_bdd,$db_link);
$requete=mysql_query("select pseudo,passe from membre where pseudo=\"$pseudo_membre\" and passe=\"$passe_membre\"") or die(mysql_error());
// SI AUCUN ENREGISTREMENT NE CORRESPOND
if(mysql_num_rows($requete)==0)
{
header("Location:$url_erreur");}
else if($pseudo=="usinage"){
header("Location:inter-atelier.php");}
else if($pseudo=="logistique"){
header("Location:inter_logistique.php");}
else if($pseudo=="moulage"){
header("Location:inter-atelier.php");}
else if($pseudo=="lambda"){
header("Location:atelier.php");}
else if($pseudo=="peinture"){
header("Location:inter-atelier.php");}
}
// DECONNEXION MYSQL
mysql_close($db_link);
?>
et voici le message d'erreur que j'obtiens:
( ! ) Notice: Undefined variable: pseudo in C:\wamp\www\login.php on line 29
Call Stack
# Time Memory Function Location
1 0.0007 378000 {main}( ) ..\login.php:0
( ! ) Notice: Undefined variable: pseudo in C:\wamp\www\login.php on line 31
Call Stack
# Time Memory Function Location
1 0.0007 378000 {main}( ) ..\login.php:0
( ! ) Notice: Undefined variable: pseudo in C:\wamp\www\login.php on line 33
Call Stack
# Time Memory Function Location
1 0.0007 378000 {main}( ) ..\login.php:0
( ! ) Notice: Undefined variable: pseudo in C:\wamp\www\login.php on line 35
Call Stack
# Time Memory Function Location
1 0.0007 378000 {main}( ) ..\login.php:0
( ! ) Notice: Undefined variable: pseudo in C:\wamp\www\login.php on line 37
Call Stack
# Time Memory Function Location
1 0.0007 378000 {main}( ) ..\login.php:0
Une autre idée?
Merci!
Voici mon code avec les modifs dont tu parles:
<?php
require("conf.php");
/*-----------------------------------------------------------------*/
/* PROGRAMME PRINCIPAL */
/*-----------------------------------------------------------------*/
// CONNEXION A LA BASE DE DONNEE
$db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
if(!$db_link) {echo "Connexion impossible à la base de données <b>".$sql_bdd."</b> sur le serveur <b>".$sql_server."</b><br>Vérifiez les paramètres du fichier conf.php"; exit;}
if (isset($_POST['pseudo_membre']) and isset($_POST['passe_membre'])) {
$pseudo_membre=$_POST['pseudo_membre'];
$passe_membre=$_POST['passe_membre'];
// ON SELECTIONNE L'ENREGISTREMENT CONTENANT LE LOGIN ET
// MOT DE PASSE SAISIS A LA PAGE INDEX.HTM
$requete=mysql_select_db($sql_bdd,$db_link);
$requete=mysql_query("select pseudo,passe from membre where pseudo=\"$pseudo_membre\" and passe=\"$passe_membre\"") or die(mysql_error());
// SI AUCUN ENREGISTREMENT NE CORRESPOND
if(mysql_num_rows($requete)==0)
{
header("Location:$url_erreur");}
else if($pseudo=="usinage"){
header("Location:inter-atelier.php");}
else if($pseudo=="logistique"){
header("Location:inter_logistique.php");}
else if($pseudo=="moulage"){
header("Location:inter-atelier.php");}
else if($pseudo=="lambda"){
header("Location:atelier.php");}
else if($pseudo=="peinture"){
header("Location:inter-atelier.php");}
}
// DECONNEXION MYSQL
mysql_close($db_link);
?>
et voici le message d'erreur que j'obtiens:
( ! ) Notice: Undefined variable: pseudo in C:\wamp\www\login.php on line 29
Call Stack
# Time Memory Function Location
1 0.0007 378000 {main}( ) ..\login.php:0
( ! ) Notice: Undefined variable: pseudo in C:\wamp\www\login.php on line 31
Call Stack
# Time Memory Function Location
1 0.0007 378000 {main}( ) ..\login.php:0
( ! ) Notice: Undefined variable: pseudo in C:\wamp\www\login.php on line 33
Call Stack
# Time Memory Function Location
1 0.0007 378000 {main}( ) ..\login.php:0
( ! ) Notice: Undefined variable: pseudo in C:\wamp\www\login.php on line 35
Call Stack
# Time Memory Function Location
1 0.0007 378000 {main}( ) ..\login.php:0
( ! ) Notice: Undefined variable: pseudo in C:\wamp\www\login.php on line 37
Call Stack
# Time Memory Function Location
1 0.0007 378000 {main}( ) ..\login.php:0
Une autre idée?
Merci!
Re,
l'erreur est on ne peut plus clair, la variable pseudo n'est pas défini... Et il a raison où la définis tu dans ton code ?? ^^
Tu fais une requête sql, tu récupères le résultat mais il faut le rendre exploitable avant de l'utiliser ;)
$array = $requête->fetch();
if (empty($array)) {
...
}
else if ($array['pseudo'] == 'usinage') {
...
}
...
l'erreur est on ne peut plus clair, la variable pseudo n'est pas défini... Et il a raison où la définis tu dans ton code ?? ^^
Tu fais une requête sql, tu récupères le résultat mais il faut le rendre exploitable avant de l'utiliser ;)
$array = $requête->fetch();
if (empty($array)) {
...
}
else if ($array['pseudo'] == 'usinage') {
...
}
...
Merci encore Meoran pour tes conseils, mais je suis débutant et je ne comprends pas très bien.
Peux-tu être un peu plus clair?
Que faut-il mettre entre le if (empty($array)) { et le else if...
A quel endroit dans mon code ci-dessus dois-je insérer $array = $requête->fetch();
if (empty($array)) {
Merci
Peux-tu être un peu plus clair?
Que faut-il mettre entre le if (empty($array)) { et le else if...
A quel endroit dans mon code ci-dessus dois-je insérer $array = $requête->fetch();
if (empty($array)) {
Merci
Salut,
récupérer un pseudo dans ta base de données ne créer pas pour autant une variable $pseudo dans ton code php.
Le $array = $requête->fetch(); permet de récupérer ce pseudo dans un tableau.
Fait un print_r($array) juste après le fetch, tu verras ce qu'il contient concrètement ;)
SInon le code :
$requete=mysql_query("select pseudo,passe from membre where pseudo=\"$pseudo_membre\" and passe=\"$passe_membre\"") or die(mysql_error());
$array = $requête->fetch();
print_r($array);
if (empty($array)) {
header("Location:$url_erreur");
}
else if ($array['pseudo'] == 'usinage') {
header("Location:inter-atelier.php");
}
etc etc...
récupérer un pseudo dans ta base de données ne créer pas pour autant une variable $pseudo dans ton code php.
Le $array = $requête->fetch(); permet de récupérer ce pseudo dans un tableau.
Fait un print_r($array) juste après le fetch, tu verras ce qu'il contient concrètement ;)
SInon le code :
$requete=mysql_query("select pseudo,passe from membre where pseudo=\"$pseudo_membre\" and passe=\"$passe_membre\"") or die(mysql_error());
$array = $requête->fetch();
print_r($array);
if (empty($array)) {
header("Location:$url_erreur");
}
else if ($array['pseudo'] == 'usinage') {
header("Location:inter-atelier.php");
}
etc etc...
C'est bon je viens de trouver la solution!!!
Voici le code modifié:
<?php
require("conf.php");
/*-----------------------------------------------------------------*/
/* PROGRAMME PRINCIPAL */
/*-----------------------------------------------------------------*/
// CONNEXION A LA BASE DE DONNEE
$db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
if (isset($_POST['pseudo_membre']) and isset($_POST['passe_membre'])) {
$pseudo_membre=$_POST['pseudo_membre'];
$passe_membre=$_POST['passe_membre'];
// ON SELECTIONNE L'ENREGISTREMENT CONTENANT LE LOGIN ET
// MOT DE PASSE SAISIS A LA PAGE INDEX.HTM
$requete=mysql_select_db($sql_bdd,$db_link);
$requete=mysql_query("select pseudo,passe from membre where pseudo=\"$pseudo_membre\" and passe=\"$passe_membre\"") or die(mysql_error());
// SI AUCUN ENREGISTREMENT NE CORRESPOND
if(mysql_num_rows($requete)==0)
{
header("Location:$url_erreur");}
elseif($pseudo_membre=="usinage"){
header("Location:inter-atelier.php");}
elseif($pseudo_membre=="logistique"){
header("Location:inter_logistique.php");}
elseif($pseudo_membre=="moulage"){
header("Location:inter-atelier.php");}
elseif($pseudo_membre=="lambda"){
header("Location:atelier.php");}
elseif($pseudo_membre=="peinture"){
header("Location:inter-atelier.php");}
}
// DECONNEXION MYSQL
mysql_close($db_link);
?>
Merci encore!
Voici le code modifié:
<?php
require("conf.php");
/*-----------------------------------------------------------------*/
/* PROGRAMME PRINCIPAL */
/*-----------------------------------------------------------------*/
// CONNEXION A LA BASE DE DONNEE
$db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
if (isset($_POST['pseudo_membre']) and isset($_POST['passe_membre'])) {
$pseudo_membre=$_POST['pseudo_membre'];
$passe_membre=$_POST['passe_membre'];
// ON SELECTIONNE L'ENREGISTREMENT CONTENANT LE LOGIN ET
// MOT DE PASSE SAISIS A LA PAGE INDEX.HTM
$requete=mysql_select_db($sql_bdd,$db_link);
$requete=mysql_query("select pseudo,passe from membre where pseudo=\"$pseudo_membre\" and passe=\"$passe_membre\"") or die(mysql_error());
// SI AUCUN ENREGISTREMENT NE CORRESPOND
if(mysql_num_rows($requete)==0)
{
header("Location:$url_erreur");}
elseif($pseudo_membre=="usinage"){
header("Location:inter-atelier.php");}
elseif($pseudo_membre=="logistique"){
header("Location:inter_logistique.php");}
elseif($pseudo_membre=="moulage"){
header("Location:inter-atelier.php");}
elseif($pseudo_membre=="lambda"){
header("Location:atelier.php");}
elseif($pseudo_membre=="peinture"){
header("Location:inter-atelier.php");}
}
// DECONNEXION MYSQL
mysql_close($db_link);
?>
Merci encore!