Problème de header


xdeslandes
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 391
Inscription: 29 Déc 2004

Problème de header

Message le Mar Fév 07, 2006 15:00

Bonjour,
mon site contient des pages qu'il me faut protéger. On s'identifie, puis on accède à des pages commençant par :
Code: Tout sélectionner
session_start();
if (! empty($_SESSION))   
{   $mode = $_SESSION ['mode'];
   $auth = $_SESSION['auth'];
}
else // si la session commence, on passe en mode user par défaut
{   $mode = "user";
   $auth = "no";
   $_SESSION['mode'] = $mode;
   $_SESSION['auth'] = $auth;
}
if(! isset($_SESSION)) $auth = "no";

// si l'identification n'est pas faite
if ($auth == "no")

   header ("Location : http://www.monsite.fr/");
   exit();
}

Mais cela renvoie une page vide (à cause du exit(); je pense). On n'est pas redirigé.
Sur le même répertoire, j'ai essayé le script essai.php suivant :
Code: Tout sélectionner
<?php
header("Location: http://www.monsite.fr/");
?>

et la redirection se fait bien. Alors, où est mon problème ? La doc php me dit que le paramètre optionnel n'est qu'à mettre si on ne veut PAS écraser les en-tête précédents éventuels, mais ce n'est pa smon cas...
NB. Cette méthode a pourtant bien fonctionné sur une autre plateforme.
Merci de vos conseils.


e-kiwi
Modérateur
Modérateur
 
Messages: 15544
Inscription: 23 Déc 2003

Message le Mar Fév 07, 2006 15:23

Procède par étape
déjà fais un echo $auth pour savoir ce qu'il y a dans la variable
tu dis que c est peut-etre dû au exot(), essaye donc sans


xdeslandes
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 391
Inscription: 29 Déc 2004

Message le Mar Fév 07, 2006 16:01

Merci e-kiwi !
1- sans le exit(); il ne se passe rien : la page s'affiche, même aux non identifiés. C'est le exit(); qui me renvoie une page vide.
2- le test if ($auth == "no") se fait bien, j'ai vérifié.

C'est vraiment un problème avec le header. Mais je n'ai aucun message d'erreur (genre : "un truc a été renvoyé au navigateur avant l'appel à header..."). :(


e-kiwi
Modérateur
Modérateur
 
Messages: 15544
Inscription: 23 Déc 2003

Message le Mar Fév 07, 2006 17:00

if ($auth == "no")
{
echo "toto"
}
marche ?

essaye une redirection avec une adresse non absolue peut-etre (car possible que ton session_start() sur l'autre page ne marche pas si tu fais un header en adresse absolue)


correiaj
WRInaute passionné
WRInaute passionné
 
Messages: 1110
Inscription: 25 Avr 2005

Message le Mar Fév 07, 2006 17:17

header ("Location : http://www.monsite.fr/");


Il y a une erreur de frappe: pas d´espace après location....


xdeslandes
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 391
Inscription: 29 Déc 2004

Message le Mar Fév 07, 2006 17:34

Merci correiaj !!! Ce fu**ing espace entre Location et : !!
Merci à vous tous ! Ca marche maintenant.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :

  • Analyseur d'entête HTTP
    Cet outil vous permet de connaître le code HTTP renvoyé par le serveur pour une page donnée.
  • Test de redirection
    Cet outil vous permet de tester la validité d'un lien pour le référencement. Il vous indique la nature du lien (lien en dur, redirection bien gérée par les moteurs ou redirection mal gérée par les moteurs).


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités