Okai,所以我试图稍早发布一下,虽然我的问题略有改变。 我已经确定了我的login.php(我分配$ _SESSION值)和我的members.php页面之间的问题(我尝试再次获取$ _SESSION变量,但无法恢复它)。我发现这个问题的方法是在我的members.php文件中运行一个var转储,它给了我0.我在login.php中设置了值之后也做了这个,我得到了asigned值作为结果。 如果你帮助我,我会非常感激!
这是我的login.php页面:
<?php
session_start();
require('connect.php');
$username = $_POST['username'];
$password = $_POST['password'];
if (isset($username) && isset($password))
{
$query = mysql_query("SELECT * FROM login WHERE username='$username' AND password='$password'");
$result = mysql_num_rows($query);
if($result > 0)
{
echo "You have been logged in. <a href='members.php'>Go to the members page</a>";
$username = $_SESSION['login'];
}
else
{
echo "Password is incorrect. Try again.";
}
}
else
{
echo "You have to enter your username and password. Try again";
}
?>
这是我的members.php页面:
<?php
session_start();
if (isset($_SESSION['login']))
{
echo "Welcome " . $login . " | <a href='logout.php'>Logout</a>";
}
else
{
header('Location: index.php');
}
?>
答案 0 :(得分:0)
您的会话“登录”变量未设置,因为您从未在登录文件中设置它...
你应该专门用$ _SESSION ['login'] =“blah”;
设置它我认为您的问题是您在登录用户时设置登录而不是用户名... 交换
if($result > 0)
{
echo "You have been logged in. <a href='members.php'>Go to the members page</a>";
$username = $_SESSION['login'];
}
与
if($result > 0)
{
echo "You have been logged in. <a href='members.php'>Go to the members page</a>";
$_SESSION['login'] = $username;
}
然后您应该能够从您的成员页面访问“登录”会话变量。
同样在您的会员页面上,我没有看到您设置$ login变量。所以我假设这将是一个空白区域,你打算用$ _SESSION ['login']回显你的会话登录变量。
答案 1 :(得分:0)
在聊天中解决:
结果var_dump(is_writable(session_save_path()));
返回bool(false)
。
session_save_path()
为/var/php_sessions/
。
realpath(dirname(__FILE__));
是/hermes/bosoraweb124/b185/dom.gjertgjersundcom/public_html
。
我尝试移动会话保存路径 - 但由于某种原因,public_html
中的文件夹无法写入,与读取相同(无法读取)。无论如何,在公共文件夹中放置sessions
是一个坏主意,无论如何都要让每个人都能看到。
我建议OP与其主机提供商联系,以运行chmod 766 -R /var/php_sessions/
。
解决:他的webhost的工作人员应用了权限,现在工作正常。