Ne actualisation d'une page de détruire les sessions PHP?
J'ai un captcha commande qui définit la valeur de la Session, et puis actualiser la page si le code captcha n'est pas correct.
Dans la section vérification de la page:
$_SESSION['refresh']=1;
echo '<META HTTP-EQUIV="Refresh" Content="0"; URL="contact-test.php">';
Lorsque la page se charge, il fonctionne un peu de script php pour voir si il y a une valeur pour une variable de session, s'il en est-il alors echos une fonction javascript pour une boîte d'alerte, qui a appelé dans le dans le corps par l'intermédiaire d'un onLoad commande.
Au tout début du code:
session_start();
if (isset($_SESSION['refresh'])) {
echo '<script type="text/javascript">
function loadalert ()
{alert("Incorrect security code, please try again.")}
</script>';}
Près que je peux dire lors de l'actualisation de la page les sessions de valeur est perdue, je soupçonne que le session_start() la commande est la compensation de toutes les sessions précédentes. J'ai essayé un test d'écho de l'envoi du texte et de la valeur de la session, à la fois avant la boucle et dans la boucle; seulement celle d'avant la boucle est fait l'écho sans session de la valeur à actualiser.
- Avez-vous le début de la séance avant "$_SESSION['actualiser']=1"?
Vous devez vous connecter pour publier un commentaire.
Pas la session n'est détruit lorsque vous appelez le session_destroy() fonction ou chaque fois que la date d'expiration est définie.
Vous pouvez aussi vider le tableau de SESSION à "détruire" tout ce qui est à l'intérieur de la SESSION.
Que Josua ladite session est détruite seulement session_destroy() est appelée. Vérifiez si vous êtes en stockant les valeurs de session à partir d'un formulaire affiché dans la page précédente. Si donc, lorsque vous actualisez la page, les valeurs d'un formulaire de la page précédente sont détruits (?)
si, pour une raison inconnue ... la séquence de code ....
puis il l'habitude de travailler. si le session_start() est tout en haut de la page , puis votre code devrait fonctionner correctement.
aussi ..... si vous avez une sortie déjà commencé avant ..
$_SESSION['actualiser']=1;
echo ";
vous devriez obtenir une erreur, mais l'actualisation serait trop rapide pour vous d'avis, je suppose. utiliser header("location: contact-test.php"); au lieu de ce qui obsolète meta refresh.
Quelque chose qui peut être crucial ici est qu'il y a un truc avec les COOKIES. Je sais que vous vous posez des questions à propos de la session de vars, mais cela peut vous affecter et il m'a causé plus d'un ou deux des maux de tête.
Si vous définissez un cookie sur une page, vous ne POUVEZ PAS compter sur elle pour être là quand vous lisez le cookie. C'est, dans une page de tirage, le cookie var ne peuvent pas être écrites et lues à partir, comme si c'était une variable. C'est une télécommande chose donc ne pensez jamais que vous pouvez écrire et il suffit de lire le droit de retour - la chose que vous venez de ne pas exister en tant que le cookie de votre code, c'est de voir est "obsolète" à ce point. J'espère qu'un sens.
Session de vars est fantastique en ce qu'ils fonctionnent exactement comme vous le souhaitez.