[英]PHP LOST SESSION
这是我第一次遇到这个问题。
基本上,当我执行登录功能时,我创建了一个会话变量,该变量被传递给index.php文件。
问题是,如果刷新浏览器或单击其他菜单项,则会丢失会话。
这里有一些代码:
public function Login_Form()
{
if(isset($_POST['login']))
$this->login($_POST);
?>
<form action="<?php $_SERVER['PHP-SELF']; ?>" method="POST" id="form_login">
<table>
<tr>
<td>Username</td>
<td><input type="text" name="username" /></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password" /></td>
</tr>
<td><input type="submit" name="login" value="Login" /></td>
</table>
</form>
<?php
}
private function login($p)
{
// OTTENGO VALORI PASSATI DAL LOGIN FORM
$username = mysql_real_escape_string($p['username']);
$password = mysql_real_escape_string(md5($p['password']));
// CONTROLLO CHE ESISTA L'UTENTE
$control = mysql_query("SELECT * FROM tareado.user WHERE username='$username' AND password='$password'");
if(mysql_affected_rows() > 0)
{
while($x = mysql_fetch_array($control))
{
$id_utente = $x['iduser'];
$_SESSION['idutente'] = $id_utente;
}
$_SESSION['username'] = $username;
//session_write_close();
header("Location: index.php"); // REDIRECT TO INDEX.PHP, NOW WE ARE IN index.php?a=log
//exit();
}
else
echo "Credenziali errate";
}
我放在index.php SESSION_START()的顶部,但是我总是会丢失会话。
可能是哪个问题? 重定向?
我没有看到会话从其重定向的页面开始。 您也可以使用firebug调试会话是否甚至在Cookies选项卡下启动。 尝试登录时,您应该会看到类似PHPSESSID的信息。 不知道这是否是您的答案,但我无法发表评论。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.