PHP Variable de Session en Passant
Je n'arrive pas à voir pourquoi la $_SESSION['email']
n'est pas passé
Page 1 Segment
<?php
if (isset($finalusername, $finalpass, $finalemail)) {
$myFile = "users/$finalusername.txt";
$fh = fopen($myFile, 'w') or die("There was an error in creating your account. <br />");
$stringData = "$finalusername\n";
fwrite($fh, $stringData);
$stringData = "$finalpass\n";
fwrite($fh, $stringData);
$stringData = "$finalemail\n";
fwrite($fh, $stringData);
fclose($fh);
//set session variable
session_start();
$_SESSION['email'] = "$finalemail";
echo "<a href='emailverify.php'><button>Continue to Email Verification Page</button></a>";
}
?>
Page 2 Segment
<?php
//Check if your session variable is active
session_start();
if (isset($_SESSION['email'])) {
$message = rand(111111111, 999999999);
$to = "[email protected]";
$subject = "Test mail";
$from = "[email protected]";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
session_start();
unset($_SESSION['email']);
}
?>
J'ai vraiment ne peux pas le voir ce que j'ai fait de mal. Je sais que tout le reste est eprfect parce que le reste du code qui fonctionne.
session_start()
doivent toujours être placés sur le haut de script PHP- appel
session_start()
toujours au tout début (juste pour être sûr). Aussi le deuxième appel àsession_start()
dans la page 2 de script n'est pas nécessaire. - Yupp, @MarekSebera, c'est tout. Aussi, pas de multiples appels à l'aide.
- Wow...est-ce vraiment tout? lol C'était vraiment simple bonté je suis un noob 🙁 Merci tout le monde!
- Comment se fait-session_start() doit être placé sur le dessus? 100% de mauvais , il n'est pas d'envoyer quoi que ce soit pour le navigateur, à moins que fopen n'a pas fonctionné ou des erreurs apparaissent. Vous pouvez également utiliser ob_start() et vous pouvez placer la fonction session_start() n'importe où vous voulez. Je ne vois pas ce qui va être envoyé au navigateur b4 session_start() dans le script.
- Donc, je dirais peut-être vous obtenez une erreur ou fopen n'a pas fonctionné . Essayez de définir la fonction error_reporting à E_ALL. Si le code b4 session_start dans page1 fonctionne bien alors peut-être que votre cookie de session est en quelque sorte retiré entre les pages.
Vous devez vous connecter pour publier un commentaire.
"
session_start()
est utilisé en PHP pour lancer une session sur chaque page PHP. Elle doit être la première chose qui est envoyé au navigateur, ou il ne fonctionnera pas correctement, il est donc généralement préférable de le placer à droite après le<?php
tag. Ce doit être sur chaque page vous avez l'intention d'utiliser les sessions sur."http://php.net/manual/en/function.session-start.php