我知道这已经讨论了很多,但我似乎无法找到解决问题的方法:
我有一个密码,传递给新的php文件,其格式如下:
<form method="POST" action="test.php">
Password: <input type="password" name="password" size="15" />
</form>
在test.php文件中,我创建一个会话,然后使用POST获取密码,如下所示:
session_name('first');
session_start('first');
if (isset($_SESSION['pass_s']))
{
$_SESSION['pass_s'] = $_SESSION['pass_s'];
} else
{
$_SESSION['pass_s'] = $_POST['password'];
}
$pass = $_SESSION['pass_s'];
但我也用以下内容刷新此页面:
$page = "test.php";
$sec = 60;
header("Refresh: $sec; url=$page");
问题是,无论如何都会保持会话设置,因此在新登录时会启动旧会话。我在命名我的会话和刷新我的页面之间陷入困境。 我因为刷新而无法销毁会话,但我也无法保持会话。我相信我被保存在饼干中。
我基本上需要在页面退出时销毁一个会话,但是当刷新在页面上运行时却没有?
答案 0 :(得分:1)
首先,session_start没有args,你可以在http://www.php.net/manual/es/function.session-start.php
中看到其次,php会话有生命周期。 session.gc_maxlifetime指令的php.ini默认值(“gc”用于垃圾收集)是1440秒或24分钟。请参阅手册中的“会话运行时配置”页面。
然后,如果你想关闭你的会话,只需使用session_destroy或取消设置($ _ SESSION ['pass_s'])
答案 1 :(得分:0)
好吧我明白了。不需要任何会议。这是你做的:
if ($_POST["password"] != "")
{
$passb = $_POST["password"];
$userb = $_POST["username"];
}
else
{
$userb = $_GET["userb"];
$passb = $_GET["passb"];
}
$urllink = "60;url=thisPage.php?userb=".$userb."&passb=".$passb;
然后插入
<META HTTP-EQUIV="refresh" CONTENT=<?php echo $urllink?>>
这将每60秒刷新一次
基本上你检查是否发布了变量。然后你把它放在链接中并在刷新时发送给自己。这仍然需要更好的安全性,但就像一个魅力