Php: fonction de verification de session
Résolu
steeff
-
Th0m45 Messages postés 81 Date d'inscription Statut Membre Dernière intervention -
Th0m45 Messages postés 81 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous ! :)
J'ai un petit problème avec une fonction de vérification de session que j'essaye de créer.
Je commence par vérifier que le pseudo est bien celui attendu, c'est-à-dire "admin", puis s'il est correcte je voudrai pouvoir rediriger vers la page qui à appelé la fonction de vérification.
Pour ça j'ai penser mettre le nom de la page qui fait l'appel dans une variable, puis la passer en paramètre à la fonction, et l'utiliser dans la redirection du header. Mais ça ne marche pas, je ne sais pas si on peut faire comme ça ?
L'intérêt serait que pour la partie administration, je n'ai qu'à appeler cette fonction dans chacune des page avant de les afficher. Cela éviterait donc d'écrire plusieurs fois le même code.
Voici mon code :
Partie include/fonctions.php :
Partie avec une page test qui appel la fonction :
Et quand je test, le message d'erreur est :
" Parse error: syntax error, unexpected T_VARIABLE "
Voyez-vous où est le problème s'il vous plait ?
Je vous remercie par avance.
J'ai un petit problème avec une fonction de vérification de session que j'essaye de créer.
Je commence par vérifier que le pseudo est bien celui attendu, c'est-à-dire "admin", puis s'il est correcte je voudrai pouvoir rediriger vers la page qui à appelé la fonction de vérification.
Pour ça j'ai penser mettre le nom de la page qui fait l'appel dans une variable, puis la passer en paramètre à la fonction, et l'utiliser dans la redirection du header. Mais ça ne marche pas, je ne sais pas si on peut faire comme ça ?
L'intérêt serait que pour la partie administration, je n'ai qu'à appeler cette fonction dans chacune des page avant de les afficher. Cela éviterait donc d'écrire plusieurs fois le même code.
Voici mon code :
Partie include/fonctions.php :
/* Permet de vérifier que la session est activée avant de permettre l'accès à la zone d'administration */ function VerifSession($pseudo, $page) { if(isset($pseudo)) { if($pseudo == "admin"){ header('Location: ' $page); exit(); //arrete les processus } } //Si on est pas entré dans les deux conditions alors redirection vers la page d'accueil header('Location: index.php'); exit(); //arrete les processus }
Partie avec une page test qui appel la fonction :
<?php include_once("include/connect.inc.php"); include_once("include/fonctions.php"); session_start(); $page = 'consultermsg.php'; VerifSession($_SESSION['pseudo'], $page);
Et quand je test, le message d'erreur est :
" Parse error: syntax error, unexpected T_VARIABLE "
Voyez-vous où est le problème s'il vous plait ?
Je vous remercie par avance.
A voir également:
- Php: fonction de verification de session
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
12 réponses
Salut,
Généralement, un message d'erreur PHP est plus long que cela ! Dans quel page et quelle ligne survient l'erreur ? On pourra t'en dire plus avec ca.
Envoi également la ligne de l'erreur.
;-)
Généralement, un message d'erreur PHP est plus long que cela ! Dans quel page et quelle ligne survient l'erreur ? On pourra t'en dire plus avec ca.
Envoi également la ligne de l'erreur.
;-)
Le message est :
Parse error: syntax error, unexpected T_VARIABLE in ...\INCLUDE\fonctions.php on line 35
et la ligne 35 de fonctions.php est justement celle là :
Donc je pense que le problème vient de $page.
Et sur consultemsg.php j'appel la fonction comme ça :
$page = 'consultermsg.php';
VerifSession($_SESSION['pseudo'], $page);
Donc je passe pourtant bien le nom de la page en paramètre. :x
Parse error: syntax error, unexpected T_VARIABLE in ...\INCLUDE\fonctions.php on line 35
et la ligne 35 de fonctions.php est justement celle là :
header('Location: ' $page);
Donc je pense que le problème vient de $page.
Et sur consultemsg.php j'appel la fonction comme ça :
$page = 'consultermsg.php';
VerifSession($_SESSION['pseudo'], $page);
Donc je passe pourtant bien le nom de la page en paramètre. :x
Salut,
à la place de faire une redirection, essais de faire un
Pour voir si la variable existe, et si elle contient bien quelque chose.
C'est possible que ta variable $page n'est pas était initialisée.
Une erreur ne devient pas vérité parce que tout le monde y croit.
à la place de faire une redirection, essais de faire un
echo $page:
Pour voir si la variable existe, et si elle contient bien quelque chose.
C'est possible que ta variable $page n'est pas était initialisée.
Une erreur ne devient pas vérité parce que tout le monde y croit.
Ça me met bien "consultermsg.php" quand je fais juste un echo $page à la place de la redirection (et en ayant mis la redirection vers l'index en commentaire aussi).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Hum alors la je sèche un peu :/
En général quand je récupérais cette erreur, c'était du a une variable non initialisé . Je vais faire des petits test. :)
En général quand je récupérais cette erreur, c'était du a une variable non initialisé . Je vais faire des petits test. :)
Oki, je cherche aussi de mon côté.
J'espere qu'on va trouver l'erreur.
Je me demande si on peut faire un header('Location') avec une variable ?
J'espere qu'on va trouver l'erreur.
Je me demande si on peut faire un header('Location') avec une variable ?
je vien de tester la redirection avec une variable, et ça fonctionne.
<?php $newpage = 'page2.php'; header('location: '.$newpage);
Ah ma syntaxe était pas bonne. Mais maintenant c'est firefox qui me dit ça :
"La page n'est pas redirigée correctement
Firefox a détecté que le serveur redirige la demande pour cette adresse d'une manière qui n'aboutira pas.
* La cause de ce problème peut être la désactivation ou le refus
des cookies. "
Mais je n'utilise aucun cookies pour le site... et je suis sur localhost avec wamp.
"La page n'est pas redirigée correctement
Firefox a détecté que le serveur redirige la demande pour cette adresse d'une manière qui n'aboutira pas.
* La cause de ce problème peut être la désactivation ou le refus
des cookies. "
Mais je n'utilise aucun cookies pour le site... et je suis sur localhost avec wamp.
J'ai juste ajouté le "." et l'ai collé à la variable $page :
Quand je le test comme ça, Firefox m'envoie le message précédent.
Et quand je retire ce que j'ai mis entre /* et */ , alors ça me redirige vers l'index.
function VerifSession($pseudo, $page) { if(isset($pseudo)) { if($pseudo == "admin"){ echo $page; header('Location: '.$page); exit(); //arrete les processus } } //Si on est pas entré dans les deux conditions alors redirection vers la page d'accueil /* header('Location: index.php'); */ //exit(); //arrete les processus }
Quand je le test comme ça, Firefox m'envoie le message précédent.
Et quand je retire ce que j'ai mis entre /* et */ , alors ça me redirige vers l'index.
Ah je crois que j'ai compris !
Je dois faire une boucle infinie puisqu'en arrivant sur consultermsg.php je vérifie si la variable est bonne, et si elle l'est je redirige encore vers cette page dans la fonction, qui va encore vérifier... à l'infinie !
edit : C'est bon ça fonctionne !
Merci pour ton aide ! :)
Je dois faire une boucle infinie puisqu'en arrivant sur consultermsg.php je vérifie si la variable est bonne, et si elle l'est je redirige encore vers cette page dans la fonction, qui va encore vérifier... à l'infinie !
edit : C'est bon ça fonctionne !
Merci pour ton aide ! :)