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.

InformationsquelleAutor Spencer May | 2012-01-25