if (isset($_POST['login'])) { $query = mysql_query(" SELECT id FROM users WHERE username = '".mysql_real_escape_string($_POST['username'])."' AND password = '".mysql_real_escape_string($_POST['password'])."' "); /* wrong login information? output a message and terminate the script */ if (!mysql_num_rows($query)){ header("Location: error.php"); exit(); } /* set session with unique index */ $_SESSION['id'] = mysql_result($query, 0, 'id'); mysql_query("UPDATE users SET last_login = NOW(), last_ip = '".$_SERVER['REMOTE_ADDR']."' WHERE id = '{$_SESSION['id']}'"); header("Location: success.php"); exit; } /* destroy session */ if (isset($_GET['logout'])){ mysql_query("UPDATE users SET online = '0' WHERE id = '{$_SESSION['id']}'"); session_unset(); session_destroy(); header("Location: index.php"); exit; }
它有效,它确实让我在正确的信息上成功发送了php,但这就是我想要做的事情:
<pre>if (!$_SESSION['id']) {
<form method="post" action="./"><p>
Username: <br />
<input type="text" name="username" size="22" maxlength="30" />
<br />
Password: <br />
<input type="password" name="password" size="22" maxlength="20" />
<br />
<input class="button" type="submit" name="login" value="Login" />
</form>
} else { echo "Logged in"; }
它没有显示“已登录”,我已尝试打印$ _SESSION ['id'],但没有。它全部在index.php中。可能是什么问题?并且不要担心没有hash..gonna稍后修复
答案 0 :(得分:3)
你肯定打电话给session_start吗?
答案 1 :(得分:2)
您是否记得在需要访问session_start()
的每个PHP页面中调用$_SESSION
?