PHP会话变量传递

PHP会话变量传递,php,session,variables,Php,Session,Variables,我似乎不明白为什么没有传递$\u会话['email'] 第1页段 第2页段 我真的看不出我做错了什么。我知道其他一切都是完美的,因为其余的代码都可以工作。“session\u start()在PHP中用于在每个PHP页面上启动会话。它必须是发送到浏览器的第一件事,否则它将无法正常工作,因此通常最好将它放在session\u start()之后应始终放在PHP scriptcallsession\u start()的顶部。始终放在最开始的位置(只是为了确保)。还有对session\u st

我似乎不明白为什么没有传递
$\u会话['email']

第1页段

第2页段


我真的看不出我做错了什么。我知道其他一切都是完美的,因为其余的代码都可以工作。

session\u start()
在PHP中用于在每个PHP页面上启动会话。它必须是发送到浏览器的第一件事,否则它将无法正常工作,因此通常最好将它放在
session\u start()之后
应始终放在PHP scriptcall
session\u start()的顶部。
始终放在最开始的位置(只是为了确保)。还有对
session\u start()的第二次调用
第2页中的脚本不是必需的。是的,@MarekSebera,就是这样。而且,没有多个电话会有帮助。哇……真的就这些吗?哈哈,真是太简单了,我是个傻瓜:(谢谢大家!会话怎么开始呢?)应该放在顶部?100%错误,除非fopen不工作或出现错误,否则他不会向浏览器发送任何内容。此外,您可以使用ob_start(),也可以将会话_start()放在任意位置。在该脚本中,我看不到将发送到浏览器b4会话_start()的任何内容。
<?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>";
}
?>
<?php

// Check if your session variable is active
session_start();
if (isset($_SESSION['email'])) {

$message = rand(111111111, 999999999);
$to = "email@email.com";
$subject = "Test mail";
$from = "email@email.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
session_start();
unset($_SESSION['email']);
}
?>