Проблема со сценарием входа - PullRequest
0 голосов
/ 11 июля 2009

Я пытаюсь создать сценарий входа, но у меня возникает проблема:

<?php

session_start();

if (isset($_POST['username'])) {
    $username = mysql_real_escape_string($_POST['username']);
    $password = mysql_real_escape_string($_POST['password']);

    $query = mysql_query(
        "SELECT id
         FROM users
         WHERE username = '$username'
         AND password = '$password'"
    );

    if (mysql_num_rows($query) == 0) {
        header('Location: ?error');
        exit();
    }

    // assign id to session
    $_SESSION['id'] = mysql_result($query, 0, 'id');
    mysql_query(
        "UPDATE users
         SET last_activity = ".time()."
         WHERE ".$_SESSION['id']
    );

    header("Location: /");
    exit();
}
?>

Проблема этого скрипта в том, что он устанавливает last_activity на текущее время для КАЖДОГО пользователя.
Не могу понять проблему.

Некоторая помощь будет очень полезна, и да, я позже расскажу о шифровании пароля: P

edit: найдена проблема, должно быть mysql_query("UPDATE users SET last_activity = ".time()." WHERE id = ".$_SESSION['id']);

1 Ответ

0 голосов
/ 11 июля 2009

Вы можете использовать функцию mysql now () в отличие от функции php time () - не то, чтобы она имела огромное значение, но она немного лучше, так как вам не нужно разбивать строку, чтобы сделать это. Например. Msgstr "Обновить имя таблицы set time = now (), где условие"

...