как добавить функцию входа / выхода и зарегистрироваться без sql - PullRequest
0 голосов
/ 21 марта 2009

Я изучаю PHP, и меня больше всего беспокоит добавление активности на мой сайт, но я не знаю SQL. Есть ли способ сделать это без SQL?

Ответы [ 3 ]

0 голосов
/ 21 марта 2009

Для быстрого и грязного решения вы можете хранить учетные данные пользователя в массиве, например:

$creds = array( 
               array( 'username' => 'john123',
                      'password' => 'hello'),
               array( 'username' => 'lucyliu',
                      'password' => 'dieblackmamba')
                   //more sub arrays like above here
         );

Затем вы можете сопоставить ввод пользователя, например ::1004

$username = $_POST['username'];
$password = $_POST['password'];

$match = false;
for($i=0;$i<count($creds);$i++) {
    if(strcmp($username,$creds[$i]['username']) == 0) {
        if(strcmp($password,$creds[$i]['password']) == 0) {               
            // start session and set something to indicate that user is logged in
            session_start();
            $_SESSION['authenticated'] = true;
            $_SESSION['username'] = $creds[$i]['username'];
            $match = true;    
        }
    }
}

if($match) echo 'Login successful: welcome ' . $creds[$i]['username'];
    else echo 'Invalid credentials';

РЕДАКТИРОВАТЬ: при последующем вызове страницы, вы можете проверить, вошел ли пользователь в систему, прочитав $ _SESSION

session_start();
if($_SESSION['authenticated'] === true) {
     echo 'User ' . $_SESSION['username'] . ' is logged in.';
}

Чтобы выйти из системы, вы можете выполнить этот код:

    $_SESSION = array();
    // If it's desired to kill the session, also delete the session cookie.
    // Note: This will destroy the session, and not just the session data!
    if (isset($_COOKIE[session_name()])) {
        setcookie(session_name(), '', time()-42000, '/');
    }
    // Finally, destroy the session.
    session_destroy();

Было бы полезно прочитать о php сеансах и массивах , и на вашем месте я бы откусил пулю и попытался войти в SQL.

0 голосов
/ 21 марта 2009

Проверьте, как работает обработка сеанса http://us.php.net/session, таким образом вы можете сохранить свой пользовательский объект.

Простое сохранение сеанса работает в среде с одним сервером, в мультисерверной среде вам необходимо сохранить сеанс в обычном месте, например в базе данных, но для упрощения страниц и обучения просто сохранение в сеансе работает

0 голосов
/ 21 марта 2009

Вероятно, вы можете использовать плоские файлы - единственной проблемой может быть параллельное добавление новых учетных записей. Но если вы хотите углубиться в разработку веб-сайтов, SQL, безусловно, неплохо углубиться.

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