Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: авторизация пользователя
 
 автор: Алексей Рябченко   (29.01.2008 в 14:38)   письмо автору
 
 

Я хотел бы скрыть какой нибуть текст от не зарегистрированных пользователей.
Если пользователь авторизирован то текст покажем.
Как реализовать это я даже не могу понять.
Хотелось бы увидеть маленький пример.

   
 
 автор: Mookapek   (29.01.2008 в 15:06)   письмо автору
 
   для: Алексей Рябченко   (29.01.2008 в 14:38)
 

$query = "SELECT nic, pass FROM users WHERE nic='$nic' AND pass='$pass'";
  $ath = mysql_query($query);
  if(@mysql_num_rows($ath) != 0)
  {
    echo "<br>$nic, Добро пожаловать на наш сайт! Читайте наши статьи, посетите форум!";
  }
  else
  {
    echo "<br>Вы не прошли авторизацию, так что никаких статей мы вам не покажем!";
  }


:-) Это при авторизации.
А так можно с помощью cookie сделать, как на соффтайме.

   
 
 автор: Алексей Рябченко   (29.01.2008 в 18:16)   письмо автору
 
   для: Mookapek   (29.01.2008 в 15:06)
 

Хотелось бы подробно узнать от регистрации до авторизации пользователя.
ведь после каждой перезагрузки страницы не будешь вводить логин и пароль.

   
 
 автор: Faraon   (29.01.2008 в 22:09)   письмо автору
 
   для: Алексей Рябченко   (29.01.2008 в 18:16)
 

>после каждой перезагрузки страницы не будешь вводить логин и пароль.
Использовать сессии.

   
 
 автор: Faraon   (29.01.2008 в 22:08)   письмо автору
 
   для: Mookapek   (29.01.2008 в 15:06)
 

>А так можно с помощью cookie сделать, как на соффтайме.
Думаю как на софттайме, именно так не стоит делать. Пароль в куках хранится в явном виде.
И все равно сначала надо зарегистрироваться, а потом для автологина можно ставить куку, но подумать, что в ней должно содержаться.

   
 
 автор: Алексей Рябченко   (30.01.2008 в 12:29)   письмо автору
 
   для: Faraon   (29.01.2008 в 22:08)
 

index.php
<?php 
@session_start(); // Открытие сессии
?>

<form action="handler.php" method="post">
<input name="name" type="text" value="<?php echo $_SESSION['user']; ?>"><br>
<input name="password" type="password" value="<?php echo $_SESSION['password']; ?>"><br>
<input name="" type="submit" value="Отправить">
<input name="session_id" type="hidden" value="<?php echo session_id(); ?>">
</form>
<?php 
if ($_SESSION['auth'] = true){
echo 
"Здравствуйте, ".$_SESSION['name']."! <a href='index.php?exit'>Выход</a>";
}
if (isset(
$_GET['exit'])){
session_unset($_SESSION['session_id']);
echo 
"<html><head>
<meta http-equiv='Refresh' content='0; URL=index.php'>
</head></html>"
;
exit();
}
?>



headler.php
<?php 
// Устанавливаем соединение с базой данных
include("config.php");
/*
Сравниваем переданный идентификатор из формы
с текущим идентификатором сессии
*/
session_start();
if (isset(
$_POST['name'])) {$name $_POST['name'];}
if (isset(
$_POST['password'])) {$password $_POST['password'];}
if (isset(
$_POST['session_id'])) {$session_id $_POST['session_id'];}
if (
$_POST['session_id'] != $session_id){
exit(
"Попытка передачи данных с другого хоста. скрипт остановлен.");
}
// Формируем и выполняем sql-запрос: имеется ли пользователь с именем $_POST['name']
$query "SELECT name, pass FROM user WHERE name='$name' AND pass='$password'";
  
$ath mysql_query($query);
  if(@
mysql_num_rows($ath) != 0)
  {
         
$_SESSION['auth'] = true;
        
$_SESSION['name'] = $name
        
$_SESSION['session_id'] = $session_id;
    echo 
"<br>".$_SESSION['name'].", Добро пожаловать на наш сайт! Читайте наши статьи, посетите форум!<br>
          <a href='index.php'>перейти на главную</a>"
;
  }
  else
  {
    echo 
"<br>Вы не прошли авторизацию, так что никаких статей мы вам не покажем!";
  } 
?>


Вроде все работает,
хотелось бы увидеть ваше мнение Что здесь нужно править.
Правильно ли я Уничтожаю сессию?

   
 
 автор: Алексей Рябченко   (30.01.2008 в 16:08)   письмо автору
 
   для: Алексей Рябченко   (30.01.2008 в 12:29)
 

Сессию убивать
session_unset($_SESSION['session_id']);

или можно
session_unset();

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования