Page 1 sur 2

Problème exit je pense

Posté : 09 août 2007, 14:22
par benjam89
Bonjour,
J'ai un code pour vérifié que mon utilisateur est bien connecté, mais celui-ci m'affiche une erreur, voici laquelle:
Parse error: parse error, unexpected T_EXIT in /homepages/4/d205857560/htdocs/mon-hotel-virtuel.com/site2/membres/index.php on line 20

et voici mon code:
<?
session_start();

/*
si la variable de session login n'existe pas cela siginifie que le visiteur
n'a pas de session ouverte, il n'est donc pas logué ni autorisé à
acceder à l'espace membres
*/
if(!isset($_SESSION['login'])) {
  echo 'Vous n\'êtes pas autoris´ à acceder à cette zone';
  header("location:http://www.mon-hotel-virtuel.com/login.php")
  exit();
}
?>
Quelle erreur y a t-il ?

Merci d'avance pour vos réponses.

Posté : 09 août 2007, 14:24
par zeus
Modération :
benjam89, il me semble que tu commences à te faire aux habitudes du forum. Pense bien à utiliser les balises [code] ou [php] (selon le langage utilisé).

Pour cette fois-ci, je l'ai fait pour toi mais essaye d'y penser ;)

Posté : 09 août 2007, 14:30
par jpaul
Bonjour,

Bizare : le code donné ne contient pas 20 lignes !
C'est bien le contenu du fichier :
/homepages/4/d205857560/htdocs/mon-hotel-virtuel.com/site2/membres/index.php
que tu as indiqué ?

Et autrement où en es tu de ton problème de message à afficher ?

Posté : 09 août 2007, 14:33
par Ryle
Qu'est ce qu'on doit toujours mettre à la fin des lignes pour terminer une instruction et que tu aurais omis à la fin de ton header(), laissant php interpréter la ligne suivante comme suite de l'instruction et générant du coup une erreur ? ;)

Posté : 09 août 2007, 14:38
par benjam89
les ; ???

lol

EDIT: Merci, sa fonctionne, il y as juste un petit quelque chose, puisque je vais sur la page sans me connecter (pour test), j'ai le message qui s'affiche, normal, mais sa ne me redirige pas...

Posté : 09 août 2007, 14:43
par Ryle
C'est normal, tu ne peux pas afficher de texte avant un header : http://www.phpfrance.com/forums/voir_sujet-47.php

Posté : 09 août 2007, 14:45
par benjam89
donc je peut mettre le message après alors ? ou je ne peut pas le mettre du tout ?

Posté : 09 août 2007, 14:49
par béka
le mieux est de faire ainsi :
<?
if(!isset($_SESSION['login'])) {
  header("location:http://www.mon-hotel-virtuel.com/login.php?err=nook")
  exit();
}
?>
et le code de la page login.php :
<?
if (  isset($_GET['err']) and ($_GET['err'] == 'nook')  ){
  echo "vous ne pouvez avoir accès à cette page";
}
?>

Posté : 09 août 2007, 14:52
par Ryle
Pour que la redirection via header fonctionne, il ne faut absolument rien envoyé au navigateur avant (et après ca ne sert à rien, puisque tu sera redirigé entre temps :))

Le mieux serait donc de rediriger vers une page spécifique avec ton message, ou bien de passer un paramètre à la page que tu ouvres pour que ce soit elle qui affiche le message :
  header("location:/login.php?param=valeur");
exit();
if (isSet($_GET['param']) && $_GET['param'] == 'valeur') {
  echo '...';
}

Posté : 09 août 2007, 14:55
par benjam89
merci, j'ai essayé, mais sa fait toujours rien, voici le code de vérif sur l'espace membre:
<?
if(!isset($_SESSION['login'])) {
  header("location:http://www.mon-hotel-virtuel.com/site2/login.php?err=nook");
  exit();
}
?>

Posté : 09 août 2007, 15:01
par béka
comment ça ça ne fait rien ?
Es-tu sûr que cette variable de session n'existe pas ?

Posté : 09 août 2007, 15:03
par benjam89
bien sûr, car j'ai fait exprès d'aller sur la page membre sans passer par le formulaire de connexion pour voir si ce code fonctionne :)

Posté : 09 août 2007, 15:05
par béka
et t'as quoi comme message ?
Tu arrive quand même sur la page ?

Posté : 09 août 2007, 15:05
par benjam89
non, sa affiche une page blanche

Posté : 09 août 2007, 15:06
par Ryle
header("Location:...");
:?:


Edit :
non, sa affiche une page blanche
Donc ça fait bien quelque chose ;)