Problème exit je pense

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème exit je pense

par benjam89 » 09 août 2007, 15:08

j'ai mis la maj, mais toujours rien :(

EDIT, si je fait comme sa, c'est bon ?
<?
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 'Veuillez vous identifier pour accèder à cette zone.</p><a href="http://www.mon-hotel-virtuel.com/site2/login.php">Se Connecter</a>';
  exit();
}
?>

par Ryle » 09 août 2007, 15:06

header("Location:...");
:?:


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

par benjam89 » 09 août 2007, 15:05

non, sa affiche une page blanche

par béka » 09 août 2007, 15:05

et t'as quoi comme message ?
Tu arrive quand même sur la page ?

par benjam89 » 09 août 2007, 15:03

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 :)

par béka » 09 août 2007, 15:01

comment ça ça ne fait rien ?
Es-tu sûr que cette variable de session n'existe pas ?

par benjam89 » 09 août 2007, 14:55

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();
}
?>

par Ryle » 09 août 2007, 14:52

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 '...';
}

par béka » 09 août 2007, 14:49

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";
}
?>

par benjam89 » 09 août 2007, 14:45

donc je peut mettre le message après alors ? ou je ne peut pas le mettre du tout ?

par Ryle » 09 août 2007, 14:43

C'est normal, tu ne peux pas afficher de texte avant un header : http://www.phpfrance.com/forums/voir_sujet-47.php

par benjam89 » 09 août 2007, 14:38

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...

par Ryle » 09 août 2007, 14:33

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 ? ;)

par jpaul » 09 août 2007, 14:30

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 ?

par zeus » 09 août 2007, 14:24

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 ;)