Redirection conditionnelle PHP
Résolu/Fermé
nouns62
Messages postés
110
Date d'inscription
jeudi 3 novembre 2011
Statut
Membre
Dernière intervention
3 février 2014
-
7 juin 2013 à 15:16
nouns62 Messages postés 110 Date d'inscription jeudi 3 novembre 2011 Statut Membre Dernière intervention 3 février 2014 - 10 juin 2013 à 09:54
nouns62 Messages postés 110 Date d'inscription jeudi 3 novembre 2011 Statut Membre Dernière intervention 3 février 2014 - 10 juin 2013 à 09:54
Bonjour,
je m'adresse à vous car je ne trouve pas la réponse à ma question.
Je développe un site, dans ce site il y a des variables de session.
$_SESSION['majactu'] est initialisée dans la page 'majeurs.php'.
Il existe une page 'modifPGT. php'qui sert à modifier les données de la base qui concernent le majeur dont l'id est contenu dans $_SESSION['majactu'].
Je voudrais donc que sur la page de modif, si $_SESSION['majactu'] n'est pas affectée, on soit redirigé vers 'majeurs.php' pour obliger à en choisir un.
Voici donc ma première ligne de code de 'modifPGT.php':
if(!isset($_SESSION["majactu"])) header('Location: majeurs.php');
Mais elle ne fonctionne pas bien car même si $_SESSION["majactu"] est bien initialisée, je suis tout de même redirigé!
Merci d'avance pour votre aide!
je m'adresse à vous car je ne trouve pas la réponse à ma question.
Je développe un site, dans ce site il y a des variables de session.
$_SESSION['majactu'] est initialisée dans la page 'majeurs.php'.
Il existe une page 'modifPGT. php'qui sert à modifier les données de la base qui concernent le majeur dont l'id est contenu dans $_SESSION['majactu'].
Je voudrais donc que sur la page de modif, si $_SESSION['majactu'] n'est pas affectée, on soit redirigé vers 'majeurs.php' pour obliger à en choisir un.
Voici donc ma première ligne de code de 'modifPGT.php':
if(!isset($_SESSION["majactu"])) header('Location: majeurs.php');
Mais elle ne fonctionne pas bien car même si $_SESSION["majactu"] est bien initialisée, je suis tout de même redirigé!
Merci d'avance pour votre aide!
A voir également:
- Redirection conditionnelle PHP
- Mise en forme conditionnelle excel - Guide
- Excel liste déroulante conditionnelle - Guide
- Easy php - Télécharger - Divers Web & Internet
- Mise en forme conditionnelle word ✓ - Forum Word
- Avertissement de redirection - Forum Réseaux sociaux
10 réponses
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
7 juin 2013 à 15:20
7 juin 2013 à 15:20
Salut !
Est-ce que à défaut tu fais un truc du genre :
$_SESSION['majactu'] = '';
??
Si oui, if(!isset($_SESSION['majactu']) && !empty($_SESSION['majactu'])) header('Location: majeurs.php');
Ou alors vérifie enplus qu'elle existe, qu'elle ne soit pas égale à ce que tu rentre d'habitude
Est-ce que à défaut tu fais un truc du genre :
$_SESSION['majactu'] = '';
??
Si oui, if(!isset($_SESSION['majactu']) && !empty($_SESSION['majactu'])) header('Location: majeurs.php');
Ou alors vérifie enplus qu'elle existe, qu'elle ne soit pas égale à ce que tu rentre d'habitude
nouns62
Messages postés
110
Date d'inscription
jeudi 3 novembre 2011
Statut
Membre
Dernière intervention
3 février 2014
98
7 juin 2013 à 15:42
7 juin 2013 à 15:42
Salut!
Décidément, c'est toujours toi qui répond à mes questions! ;D
Merci de ta réponse.
Non, je n'ait pas de valeur par défaut, mais je n'en voit pas l'utilité puisque je teste avec isset()...
Pourquoi rajouter une 2ème condition qui, pour moi revient à la première ?
ou alors je rate qqch... ?
Décidément, c'est toujours toi qui répond à mes questions! ;D
Merci de ta réponse.
Non, je n'ait pas de valeur par défaut, mais je n'en voit pas l'utilité puisque je teste avec isset()...
Pourquoi rajouter une 2ème condition qui, pour moi revient à la première ?
ou alors je rate qqch... ?
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
7 juin 2013 à 15:48
7 juin 2013 à 15:48
isset et empty sont deux chose completement différente.
Pour t'expliquer, voici un exemple :
Tu as un formulaire de connexion avec un champ login et un champ mdp
Le début du code php est le suivant :
if(isset($_POST['login']) && isset($_POST['mdp']))
{
}
L'utisateur oublie de remplir login, et bah ta variable login existe bien, mais est vide. Donc le if est passé.
Le empty vérifie que la variable est pas vide. C'est une sécurtié en plus :
if(isset($_POST['login']) && !empty($_POST['login'])) // si login existe, et qu'il n'est pas vide
Pour t'expliquer, voici un exemple :
Tu as un formulaire de connexion avec un champ login et un champ mdp
Le début du code php est le suivant :
if(isset($_POST['login']) && isset($_POST['mdp']))
{
}
L'utisateur oublie de remplir login, et bah ta variable login existe bien, mais est vide. Donc le if est passé.
Le empty vérifie que la variable est pas vide. C'est une sécurtié en plus :
if(isset($_POST['login']) && !empty($_POST['login'])) // si login existe, et qu'il n'est pas vide
nouns62
Messages postés
110
Date d'inscription
jeudi 3 novembre 2011
Statut
Membre
Dernière intervention
3 février 2014
98
7 juin 2013 à 16:28
7 juin 2013 à 16:28
Ah ok merci bien pour cette précision, cela fonctionne maintenant apparemment.
Merci beaucoup!
Mais je ne comprend pas pourquoi le !isset renvoyait true alors que la variable contenait qqch..?
Merci beaucoup!
Mais je ne comprend pas pourquoi le !isset renvoyait true alors que la variable contenait qqch..?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
7 juin 2013 à 16:34
7 juin 2013 à 16:34
Ah j'avais pas vu que tu avais !isset.
Dans ce cas c'est !isset && empty ;-)
Attention :
!isset veut dire si elle n'existe pas.
La variable existe, donc le isset renvoie true. Le ! devant est interprété séparément, il n'est pas à associer avec le isset
Dans ce cas c'est !isset && empty ;-)
Attention :
!isset veut dire si elle n'existe pas.
La variable existe, donc le isset renvoie true. Le ! devant est interprété séparément, il n'est pas à associer avec le isset
nouns62
Messages postés
110
Date d'inscription
jeudi 3 novembre 2011
Statut
Membre
Dernière intervention
3 février 2014
98
7 juin 2013 à 16:39
7 juin 2013 à 16:39
ç'aurait été trop beau...
je ne comprend pas il me sort une erreur à la page 'modifPGT.php'
Erreur de syntaxe près de '0003' à la ligne 1
Sachant que la variable $_SESSION['majactu'] contient "SU_0003"
voici le début de mon code...
:'(
je ne comprend pas il me sort une erreur à la page 'modifPGT.php'
Erreur de syntaxe près de '0003' à la ligne 1
Sachant que la variable $_SESSION['majactu'] contient "SU_0003"
voici le début de mon code...
<?php session_start(); if(!isset($_SESSION["majactu"]) && !empty($_SESSION["majactu"])) header('Location: majeurs.php'); include("./module/connexion.inc"); include("./module/functions_menu.php"); //affichage des menus (cf functions_menu.php) head(); menu_haut('1'); menu_pgt('1'); $res=mysql_query("SELECT * FROM majeur WHERE code=".preg_replace("/_/"," ",$_SESSION['majactu']."")) or die(mysql_error()); $rowma=mysql_fetch_array($res); ?>
:'(
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
7 juin 2013 à 16:44
7 juin 2013 à 16:44
Non c'est pas logique ta condition ;-)
Je te l'ai rectifié juste en haut en plus.
Traduis la en francais et tu comprendras ;-)
Je te l'ai rectifié juste en haut en plus.
Traduis la en francais et tu comprendras ;-)
nouns62
Messages postés
110
Date d'inscription
jeudi 3 novembre 2011
Statut
Membre
Dernière intervention
3 février 2014
98
7 juin 2013 à 16:54
7 juin 2013 à 16:54
oO oui effectivement. Mais l'erreur reste en mettant
if(!isset($_SESSION["majactu"]) && empty($_SESSION["majactu"])) header('Location: majeurs.php');
mais je ne comprend pas pourquoi il faut mettre les deux puisque si (!isset($_SESSION["majactu"]) renvoie true, ça veut dire que la var n'existe pas, donc pas besoin de tester si elle est vide!
..?
if(!isset($_SESSION["majactu"]) && empty($_SESSION["majactu"])) header('Location: majeurs.php');
mais je ne comprend pas pourquoi il faut mettre les deux puisque si (!isset($_SESSION["majactu"]) renvoie true, ça veut dire que la var n'existe pas, donc pas besoin de tester si elle est vide!
..?
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
7 juin 2013 à 16:57
7 juin 2013 à 16:57
Bien vu, j'y ai pensé en revoyant la condition corrigée !
Et donc
if(!isset($_SESSION["majactu"])) header('Location: majeurs.php');
ne marche pas ?
Et donc
if(!isset($_SESSION["majactu"])) header('Location: majeurs.php');
ne marche pas ?
nouns62
Messages postés
110
Date d'inscription
jeudi 3 novembre 2011
Statut
Membre
Dernière intervention
3 février 2014
98
10 juin 2013 à 09:54
10 juin 2013 à 09:54
me revoilà après un week-end...
bon, j'ai réglé le problème, ma condition est finalement :
if(!isset($_SESSION["majactu"]) || empty($_SESSION["majactu"])) header('Location: majeurs.php');
remarque que j'utilise un "ou logique" ( || ) et non pas un "et logique" ( && ).
Merci de ton aide.
[RESOLU]
bon, j'ai réglé le problème, ma condition est finalement :
if(!isset($_SESSION["majactu"]) || empty($_SESSION["majactu"])) header('Location: majeurs.php');
remarque que j'utilise un "ou logique" ( || ) et non pas un "et logique" ( && ).
Merci de ton aide.
[RESOLU]