Логин пользователя логин PHP - PullRequest
3 голосов
/ 01 августа 2010

Я удалил все учебники, которые никогда не работали по той или иной причине, и решил самостоятельно развернуть свою функцию регистрации / входа, и, к моему удивлению, она действительно работает!

Но чего я не понимаю, так это того, как работает логика, когда кто-то входит в систему! Например, после входа в систему я просто $_POST передаю свои данные на любую другую страницу, которую они посещают, и как только они попадают на новую страницу $_REQUEST, которая публикует данные с URL-адреса и отображает сообщение типа: «да, Вы все еще вошли в систему "?

Я немного запутался, поэтому надеюсь, что этот вопрос вас тоже не смущает.

Ответы [ 4 ]

1 голос
/ 01 августа 2010

Пусть у нас есть такие страницы, как login.php after_login_page1.php after_login_page2.php

Вы можете выполнить следующие простые шаги

  1. Установить $ _SESSION ['id'] = $ userid // идентификатор пользователя из db в login.php

  2. всегда иметь session_start () на последующих страницах, таких как after_login_page1.php, after_login_page2.php

  3. Проверьте, если (! Isset ($ _ SESSION ['id'])) {header ("Location: login.php");}

  4. на странице logout.php дают $ _SESSION ['id'] = '';и сделайте session_destroy ()
1 голос
/ 01 августа 2010

Самый простой способ - «держать пользователей в системе» - это использовать сеансы PHP. Когда вы запускаете session_start () ;, PHP устанавливает cookie с SESSION_ID в браузере пользователей, чтобы он мог идентифицировать этого пользователя. После этого вы можете установить любые данные в массиве $ _SESSION, которые будут сохраняться в сеансе между запросами страницы.

1 голос
/ 01 августа 2010

Самый простой ИМО - использовать сеанс.По сути, это PHP, автоматически устанавливающий куки (или добавляющий кусок в URL, в зависимости от вашей конфигурации) в пользовательской системе и автоматически загружающий его при каждом просмотре страницы.Затем вы можете добавить данные в сеанс, и если срок действия файла cookie не истек (или был удален) и / или вы не уничтожили сеанс, вы будете иметь эти данные в вашем распоряжении на каждом просмотре страницы, который делает пользователь.

Посмотрите здесь небольшое вступление к сессиям: http://www.htmlgoodies.com/beyond/php/article.php/3472581/PHP-Tutorial-Sessions.htm

1 голос
/ 01 августа 2010

После входа в систему у вас обычно есть два варианта. Сохраните их данные или токен аутентификации (что поможет PHP на сервере знать, кто есть кто) в сеансе или сохраните в cookie . Оба имеют свои привилегии, но вам нужно будет выбрать тот, который работает для вас.

Если вы храните данные в сеансе, пользователь не может получить доступ к тому, что вы сохранили, может только ваш код. Это полезно, если вы хотите сохранить, скажем, их идентификатор или имя пользователя. Вы можете верить, что это всегда будет их идентификатор и имя пользователя, потому что они не могут его изменить.

С помощью файлов cookie пользователь может получать к ним доступ и изменять их, поскольку они хранятся на локальных компьютерах. Из-за этого вам нужно быть немного хитрее и хешировать детали пользователей, а затем проверить, кто это, с некоторой серверной логикой. Это немного сложнее.

Реализация сеанса может выглядеть так:

session_start(); //Make sure you call this at the top of EVERY page
if($passwordsMatch){
    $_SESSION['user'] = $_POST['username'];
}
//Now we have access to $_SESSION['user'] on every page.

На другой не связанной странице:

session_start();
print "Welcome, ".$_SESSION['user'];
...