我的脚本test.php在下面.当我单击Submit时,它会将其作为登录尝试进行处理并成功设置$_SESSION变量.但是当我重新加载页面时(通过单击链接回自身),它$_SESSION是空的.
<?php
//test.php
session_start ();
function isUserLoggedIn (&$username)
{
$loggedIn = isset ($_SESSION['loggedin']);
if ($loggedIn)
$username = $_SESSION['user'];
else
$username = '';
return $loggedIn;
}
function processLogin ()
{
$_SESSION['loggedin'] = TRUE;
$_SESSION['user'] = "podunk";
session_write_close ();
}
echo '$_SESSION before we do anything..................: ';
print_r ($_SESSION);
echo "<br>";
if (isset($_POST['Submit'])) processLogin ();
$loggedIn = isUserLoggedIn ($username);
echo '$_SESSION after processing any login attempt: ';
print_r ($_SESSION);
echo "<br>";
if ($loggedIn)
echo "I AM LOGGED IN as $username!";
else
echo "I am logged out :(";
?>
<html>
<body>
<form name="form1" method="post" action="test.php">
<input type="submit" name="Submit" value="Login">
</form>
<a href="test.php">Reload page</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这是我在Linux apache2服务器上运行它的时候.当我在XAMPP上运行它时,$ _SESSION仍然存在并且用户仍然登录.所以我猜它与php.ini有关......但也许我在这里犯了一个错误并且XAMPP正在原谅.
Linux服务器成功运行WordPress,所以它的设置不能太奇怪.刚刚按照建议进行了系统升级.session.save_path存在并且今天有一些日期,所以我认为它有效,虽然它由root拥有而不是www-data,所以IDK如果这是一个问题.
这里有一些来自php信息的其他东西.关于那个cookie_path的IDK,所以我把它改成了session.save_path,FWIW所在的地方.
session.auto_start On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
Run Code Online (Sandbox Code Playgroud)
使用Chrome,Firefox和IE的行为是相同的.
TIA.
似乎有2个问题:
1)你的session.save_path不可写。正如我从您的评论中了解到的那样,您已经解决了这个问题。无论如何,尝试将其设置在脚本之上,以确保:
ini_set('session.save_path', '/tmp');
Run Code Online (Sandbox Code Playgroud)
2)您混淆了session.cookie_path和session.save_path,这两个设置是完全不同的东西。将session.cookie_path设置为/,这是指您的url 路径。
ini_set('session.cookie_path', '/');
Run Code Online (Sandbox Code Playgroud)
如何在unix中使会话目录可写
chown www-data:www-data /tmp/sessionsini_set('session.save_path', '/tmp/sessions'); 最后,检查该文件夹中的所有者会话文件。
| 归档时间: |
|
| 查看次数: |
1106 次 |
| 最近记录: |