我的php网站中的$_SESSION
函数有问题。我设置了该功能,然后尝试在另一个页面中访问它,但它只是空白。
这是我设置login.php
$_SESSION
<?php
session_start();
?>
<html>
<?php
$email = $_POST['email'];
$password = $_POST['password'];
$con = mysqli_connect("host","user","pass","db");
if (!$con)
{
die('Could not connect: ' . mysqli_error());
}
if ($email && $password){
$result = mysqli_query($con, "SELECT * FROM users WHERE email='$email'");
$numrows = mysqli_num_rows($result);
if ($numrows != 0){
//username exists
$row = mysqli_fetch_row($result);
if ($password != $row[2]){
print 'Incorrect password<br />';
$error = TRUE;
}
else {
//password is correct
echo "You're in! <a href='member.php'>Click</a> here to enter member page";
$_SESSION['email'] = $email;
}
}
else {
//email not found
print 'Sorry, that email cannot be found.<br />';
$error = TRUE;
}
}
else {
die('Please enter an email and password<br />');
$error = TRUE;
}
if ($error){
print '<a href=index.php>Go Back</a>';
}
?>
</html>
这是member.php
文件。
<?php
session_start();
if (isset($_SESSION['email'])){
$username = $_SESSION['email'];
echo "Your email is ";
echo $username;
}
?>
当我按链接通过链接转到member.php
页面时,该页面完全空白,可能表示$_SESSION['email']
中没有任何内容。
请让我知道我哪里出错了,以及如何纠正这个问题
任何帮助将不胜感激。
如果有人想了解网站的实际运作方式,请转到here。
答案 0 :(得分:1)
您需要在login.php的最顶部进行此调用,而不是在中途。
session_start();
答案 1 :(得分:1)
添加session_start();在login.php中的HTML之前设置它
答案 2 :(得分:1)
将其添加到login.php页面的最顶部:
<?php
session_start ();
?>
从PHP文档:
&#34;注意: 要使用基于cookie的会话,必须在向浏览器输出任何内容之前调用session_start()。&#34;
http://us3.php.net/session_start
如果仍然无法编辑此行:
echo "You're in! <a href='member.php'>Click</a> here to enter member page";
取而代之的是:
echo "You're in! <a href='member.php?" . htmlspecialchars(SID) . "'>Click</a> here to enter member page";
http://us3.php.net/manual/en/session.idpassing.php
ž