2010-07-04 5 views
1

J'ai un problème, je ne peux pas comprendre de toute façon.

j'ai trois fichiers - index.php, admin.php, post.php

dans index.php j'ai

<? 
session_start(); 
$_SESSION['login11_error'] = 'yes'; 
if(verifying username and password here, if they correct) 
{ 
    $_SESSION['login11_error'] = 'no'; 
    header('Location: admin.php'); 
} 
?> 

dans admin.php j'ai

<? 
session_start(); 
<form action="post.php" method="post"> 
... 
?> 

et dans finaly post.php

<? 
session_start(); 
some functions here... 
header("location:admin.php"); 
?> 

mais quand il redirigé vers admin.php de post.php fait perdre la valeur de $_SESSION['login11_error'].

des idées?

Merci ...

MISE À JOUR

fixe. Parce que je montre juste la structure du script ici, j'ai une erreur dans ma question.

post php est dans un autre dossier, puis index.php et admin.php, il est dans /folder1/folder1_1/post.php

à post.php i écrivait header('Location: http://bs.am/admin.php")

et quand je change pour header('Location: ../../admin.php") il commencer à travailler.

comportement incompréhensible pour moi, mais fonctionne :)

+0

Comment l'ID de session est-il transmis? – Gumbo

+0

@Gumbo désolé? Je ne comprends pas ... quel ID? – Simon

+0

lorsque j'imprime la valeur de '$ _SESSION [login11_error]' dans 'post.php', il s'affiche normalement, donc je ne peux pas comprendre quel est le problème. – Simon

Répondre

1

dans post.php je suis en train d'écrire en-tête ('Lieu: http://bs.am/admin.php «)

et quand je change à en-tête (' Lieu: ../. ./admin.php ") il commence à travailler.

comportement incompréhensible pour moi, mais fonctionne :)

2

Syom,

Je ne vois rien évidemment mal avec votre exemple de code. Si la redirection de index.php à admin.php fonctionne (persiste votre variable de session), alors il doit y avoir quelque chose qui se passe dans post.php. Pouvez-vous commenter tout votre code dans post.php et rediriger simplement vers admin.php? Cela est, post.php ne contiendraient:

<? 
header('Location: admin.php'); 
?> 

Si echo $_SESSION['login11_error']; (en admin.php, après votre start_session() bien sûr) imprime quelque chose, commencer articles décommentant en post.php.

Si vous êtes immobile, copiez l'exemple de http://www.php.net/manual/en/function.session-start.php et assurez-vous que cela fonctionne pour vous.

+0

J'essaie de supprimer toutes les données de 'post.php'. et ce qui est étrange - j'ai la variable correcte dans post.php (j'essaie de l'imprimer ici), mais quand il redirige vers admin.php, il supprime sa valeur ... – Simon

+0

Syom, Il doit y avoir quelque chose en cours dans post.php, parce que la logique de redirection utilisée dans index.php (en-tête ('Location: admin.php');) fonctionne (non?). – labratmatt

+0

je le fixe, voir la mise à jour. mais le comportement très étrange je pense. pourquoi je ne peux pas écrire toute l'URL dans l'en-tête? – Simon

0

essayez de définir manuellement avant chaque session_name('MySESS');session_start()

Questions connexes