登录脚本问题

时间:2009-01-30 02:31:14

标签: php sql

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稍后修复

2 个答案:

答案 0 :(得分:3)

你肯定打电话给session_start吗?

答案 1 :(得分:2)

您是否记得在需要访问session_start()的每个PHP页面中调用$_SESSION

相关问题