Каков наилучший способ создать страницу входа в PHP? - PullRequest
7 голосов
/ 12 января 2010

Я довольно новичок в PHP и ищу несколько советов о том, как реализовать аутентификацию в PHP.

Я - евангелист для Adobe, и одна из вещей, которые меня раздражают, это когда люди используют Flex / Flash для экрана входа в систему. Поэтому я хочу сделать запись / пример в блоге об использовании страницы входа в HTML / PHP, а затем передать информацию о сеансе в Flex -after- сеанс был установлен.

Я все еще думаю о том, что нужно PHP для создания правильного сеанса и как он устанавливает куки. Поэтому примеры или информация, которые конкретно относятся к этому, были бы очень полезны.

Заранее спасибо,

= Райан Райан@adobe.com

Ответы [ 4 ]

7 голосов
/ 12 января 2010

Как уже было сказано, для создания надежной и безопасной системы аутентификации в PHP достаточно много, но основные принципы легко понять.

Первое, что вы хотите сделать, это позвонить session_start().Сделав это, вы можете получить и установить переменные сеанса, используя $_SESSION superglobal:

session_start();
$_SESSION['foo'] = $foo;
$bar = $_SESSION['bar'];

После того, как вы это сделаете, вы сможете настроить параметры входа для текущего пользователя при успешном входе в систему.и пусть они сохраняются на страницах (не забывая звонить session_start перед их использованием).Кроме того, session_start необходимо вызывать перед отправкой любого содержимого в браузер.

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

Консорциум PHP 101 * * имеет множествополезной информации.

С файлами cookie можно обращаться с помощью функции setcookie.

2 голосов
/ 12 января 2010

Создайте страницу login.php с формой, похожей на:

<form method="post" action="login.php">
<input type="text" name="username">
<input type="password" name="password">
<input type="submit" name="submLogin">
</form>

затем добавьте свою логику php:

<?
if(isset($submLogin))
{
 $username = $_POST['username'];
 $password = $_POST['password'];

// run checks on vars not to pass on silly data + escape chars

 $query_login = 'SELECT * FROM users 
 WHERE username = ' . $username . ' AND password = ' . $password . ' LIMIT 1';
 $login = mysql_query($query_login, $db_connection) or die();
 $login_result = mysql_num_rows($login);

 if($login_result == 1)
 {
  // success
  session_start();
  $_SESSION['logged_in'] = TRUE;
  // redirect somewhere, set cookies, do whatever you want to do on success
 }
 else
 {
  // fail
  // display error or redirect
 }
}  
?>

Переменная $ db_connection - это идентификатор ссылки - результат работы mysql_connect () или mysql_pconnect ()

2 голосов
/ 12 января 2010

Это довольно широкая тема. Тем не менее, хорошее понимание сессий / куки было бы хорошей основой. Вам стоит взглянуть на блог Криса Шифлетта - у него много хороших постов на эти темы.

Я - евангелист для Adobe, и одна из вещей, которые меня раздражают, это когда люди используют Flex / Flash для экрана входа в систему. Поэтому я хочу сделать сообщение в блоге / пример использования страницы входа в HTML / PHP, а затем передать информацию о сеансе во Flex -after- сеанс был установлен.

Я не совсем уверен в вашей цели здесь. Вам нужен компонент Flash для аутентификации пользователя? Поскольку это технология на стороне клиента, такая аутентификация будет иметь ограниченную область применения.

0 голосов
/ 12 января 2010

Дамп PHP и вход в ASP.NET. Все это уже сделано, вместе с информацией о безопасности и членстве. =) * * Тысяча одна

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