Php: fonction de verification de session

Résolu
steeff -  
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 :



 /* 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 1014 Date d'inscription   Statut Membre Dernière intervention   117
 
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
steeff
 
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   Statut Membre Dernière intervention   3
 
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
steeff
 
Ç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   Statut Membre Dernière intervention   3
 
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
steeff
 
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   Statut Membre Dernière intervention   3
 
je vien de tester la redirection avec une variable, et ça fonctionne.

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

0
steeff
 
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   Statut Membre Dernière intervention   3
 
tu as modifié quoi ?
insere ton nouveaux code.
0
steeff
 
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
steeff
 
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   Statut Membre Dernière intervention   3
 
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