好的,所以我试图早些时候发布这篇文章,尽管我的问题略有改变。我已经确定了问题在我的login.php(我分配$_SESSION值)和我的members.php页面(我试图再次捡起$_SESSION变量,但未能恢复它)之间。我识别这个问题的方法是在我的members.php文件中运行一个var dump会话,结果是0。在login.php中赋值之后我也这样做了,我得到了赋值作为结果。如果你能帮我,我会很感激的!
这是我的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');
}
?>
在聊天中解决:
-
显示
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/
的命令。
解决:工作人员在他的网站主机应用的权限,它现在工作正常。
您的会话"login"变量没有设置,因为您从未在登录文件中设置它…
你应该特别设置$_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"会话变量。
在你的会员页面我也没有看到你设置$login变量。所以我假设这将是一个空白,你的意思是回显你的会话登录变量$_SESSION['login']。