Проблема скрипта входа - PullRequest
2 голосов
/ 30 января 2009
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. В чем может быть проблема? и не беспокойтесь о том, что нет хэша .. скоро почините

Ответы [ 2 ]

3 голосов
/ 30 января 2009

Вы определенно звонили session_start ?

2 голосов
/ 30 января 2009

Вы помните, чтобы вызывать session_start() на каждой странице PHP, к которой требуется доступ $_SESSION?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...