2010-08-25 4 views
0

J'ai un système de connexion de Facebook qui semble fonctionner très bien, mais je veux rediriger vers la page d'accueil si l'utilisateur est connecté. C'est donc le haut de ma pagesans tenir compte si la déclaration

<?php 
session_start(); 

if(!empty($_SESSION)){ 
header("Location: home.php"); 
} 

Mais cela est ignoré et il exécute le script de connexion comme si $ _SESSION est vide, même si j'imprime le tableau Session sur la page d'accueil et il montre toujours qu'il a des valeurs, plus le reste du script affecte des valeurs de session de toute façon. Même si je le change en if (empty($_SESSION)) ou ajouter un else { die()} après cela, il l'ignore complètement. Maintenant, si j'ajoute quelque chose pour imprimer la session en utilisant print_r ($ _ SESSION) ou en renvoyant une valeur particulière, même si je place ce côté de l'instruction if, il semble se rendre compte que le $ _SESSION a un valeur et fait la redirection. Je pourrais juste mettre cela en permanence car cela ne serait jamais apparu ... mais je préférerais comprendre pourquoi cela ne fonctionne pas maintenant.

+0

vous manque un paren. Est-ce le problème? –

+0

@Merlyn Morgan-Graham, il est référencé correctement dans l'explication et il aurait dû lancer une erreur d'analyse s'il manquait la parenthèse dans son code. Je suppose que c'était une faute de frappe et l'ai réparé. –

Répondre

3

Si vous ne pas interrompre le script, il sera, bien, courir jusqu'à la fin:

<?php 
session_start(); 

if(!empty($_SESSION)){ 
    header("Location: home.php"); 
    exit; 
} 
+0

Bien sûr! * soupir * hoquet de cerveau Merci beaucoup à tous. –

+0

@Michael: ne pas oublier d'accepter cette réponse. – janmoesen

0

Vous devez ajouter die() ou exit() dans le bloc if ou le reste du script continuera à s'exécuter.

-1
if(!empty($_SESSION['loggedIn']){ 
header("Location: home.php"); 
die(); 
} 
+1

Cela me semble OK. Essayez: 'var_dump (vide ($ _ SESSION));' – cbednarski

Questions connexes