Php: fonction de verification de session

Résolu/Fermé
steeff - 30 avril 2011 à 16:51
Th0m45 Messages postés 81 Date d'inscription jeudi 21 avril 2011 Statut Membre Dernière intervention 16 mai 2011 - 30 avril 2011 à 19:09
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 :



 /* 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:

12 réponses

Bilow Messages postés 1022 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 117
30 avril 2011 à 16:57
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.

;-)
0
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à :

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
0
Th0m45 Messages postés 81 Date d'inscription jeudi 21 avril 2011 Statut Membre Dernière intervention 16 mai 2011 3
Modifié par Th0m45 le 30/04/2011 à 17:28
Salut,

à 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.
0
Ç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).
0

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

Posez votre question
Th0m45 Messages postés 81 Date d'inscription jeudi 21 avril 2011 Statut Membre Dernière intervention 16 mai 2011 3
30 avril 2011 à 17:39
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. :)
0
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 ?
0
Th0m45 Messages postés 81 Date d'inscription jeudi 21 avril 2011 Statut Membre Dernière intervention 16 mai 2011 3
30 avril 2011 à 18:00
je vien de tester la redirection avec une variable, et ça fonctionne.

<?php
$newpage = 'page2.php';
header('location: '.$newpage);

0
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.
0
Th0m45 Messages postés 81 Date d'inscription jeudi 21 avril 2011 Statut Membre Dernière intervention 16 mai 2011 3
30 avril 2011 à 18:13
tu as modifié quoi ?
insere ton nouveaux code.
0
J'ai juste ajouté le "." et l'ai collé à la variable $page :

  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.
0
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 ! :)
0
Th0m45 Messages postés 81 Date d'inscription jeudi 21 avril 2011 Statut Membre Dernière intervention 16 mai 2011 3
Modifié par Th0m45 le 30/04/2011 à 19:10
Je t'en prie ;)
P$: N'oublie pas de le mettre en résolu.
Une erreur ne devient pas vérité parce que tout le monde y croit.
0