Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка пользователя на авторизованность, не на странице ввода пароля 
V
    Опции темы
Prompt
Дата 1.8.2006, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 22.2.2006

Репутация: нет
Всего: нет



Только не отсылайте меня к http://vingrad.ru/PHP-PHPSCRIPTS-002849
Если я реализую авторизацию с помощью сессий, то как проверить авторизован ли пользователь не на странице на которой вводится пароль, а на тех на которые пользователь приходит с главной? Надо просто проверить существование, например, переменной $_SESSION['login'] и пришел ли пользователь со страницы данного сервера?
Проверка такая
 
Код

 $SERVER_ROOT = "http://localhost/test/";
 if(eregi("^$SERVER_ROOT",$HTTP_REFERER))
 {
     ...
 }
 

Это правильно?
PM MAIL   Вверх
vasac
Дата 1.8.2006, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 8
Всего: 36



Цитата

Надо просто проверить существование, например, переменной $_SESSION['login']


а вот это
Цитата

пришел ли пользователь со страницы данного сервера?

уже по вкусу.
PM WWW   Вверх
arial
Дата 1.8.2006, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

Репутация: 6
Всего: 7



Достаточно одной таблэтки! (С)


--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
Kefir
Дата 1.8.2006, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 13
Всего: 87



например, при правильном логине ты ставишь юзеру $_SESSION['logged_in'] == true; вот и проверяй эту тему. Я к сожалению не телепат и не знаю как ты логинишь, так что лучше всё-таки хотя бы опиши чего ты делаешь с юзером, чтобы отметить его как залогиненого.
PM MAIL WWW Skype   Вверх
Prompt
Дата 1.8.2006, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 22.2.2006

Репутация: нет
Всего: нет



У меня всего один пользователь с паролем - администратор. Поэтому я делаю так.
Код

session_start();
if(isset( $_POST['submit'] ) )
{
  if( empty( $_POST['name'] ) || empty( $_POST['pass'] ) )
  {
    redirect( "fields" );                                                  //ошибка
  }                                      
  $access = array();  
  $access = file("access.php");  
  $access[1] = trim($access[1]);  
  $access[2] = trim($access[2]);  
  if($access[1] ==  $_POST['name']  && $access[2] == md5( $_POST['pass'] ))
   {    
    $_SESSION['login'] = $_POST['name']; 
   }  
  else
   redirect( "not_auth" );  
}
 

В access.php
Код

  <?php die; ?>  
  admin  
  passw  


А на других страницах так:
Код

  if (!isset($_SESSION['name']))
      echo "Доступ невозможен"; 

Этого достаточно? 
PM MAIL   Вверх
AztEK
Дата 1.8.2006, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 723
Регистрация: 4.1.2005

Репутация: 6
Всего: 18



Лучше смотреть сессию, чем referer - глючит меньше.


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
Prompt
Дата 1.8.2006, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 22.2.2006

Репутация: нет
Всего: нет



Это как?
PM MAIL   Вверх
Mal Hack
Дата 1.8.2006, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Prompt @  1.8.2006,  17:24 Найти цитируемый пост)
Только не отсылайте меня к http://vingrad.ru/PHP-PHPSCRIPTS-002849

Какая разница? Алгоритм один и тот же.

Цитата(Kefir @  1.8.2006,  17:43 Найти цитируемый пост)
например, при правильном логине ты ставишь юзеру $_SESSION['logged_in'] == true; вот и проверяй эту тему. Я к сожалению не телепат и не знаю как ты логинишь, так что лучше всё-таки хотя бы опиши чего ты делаешь с юзером, чтобы отметить его как залогиненого. 


Цитата(Prompt @  1.8.2006,  19:09 Найти цитируемый пост)
Поэтому я делаю так.

Ребят, сессию вполне можно поддералать, поэтому на такие варианты решения полагаться нельзя.
PM ICQ   Вверх
arial
Дата 1.8.2006, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

Репутация: 6
Всего: 7



Цитата
Ребят, сессию вполне можно поддералать, поэтому на такие варианты решения полагаться нельзя.
Лучьше юзать PEAR::Auth.
Новичкам он особенно подходит. smile 


--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
Prompt
Дата 1.8.2006, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 22.2.2006

Репутация: нет
Всего: нет



А если запоминать какой-нибудь id, как в FAQ, в виде md5(время+имя пользователя+ еще что-то), но только не в таблице, а опять же в файле. И проверять его на всех страницах?
PM MAIL   Вверх
Mal Hack
Дата 1.8.2006, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Prompt @  1.8.2006,  21:04 Найти цитируемый пост)
А если запоминать какой-нибудь id, как в FAQ, в виде md5(время+имя пользователя+ еще что-то), но только не в таблице, а опять же в файле. И проверять его на всех страницах? 

Не имеет значения ГДЕ ты будешь хранить данные, главное алгоритм. Надеюсь пароль не будешь в txt кидать.
PM ICQ   Вверх
Vreden
Дата 1.8.2006, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Idiotic Admin
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 12.7.2006

Репутация: нет
Всего: 1



Цитата

Не имеет значения ГДЕ ты будешь хранить данные, главное алгоритм. Надеюсь пароль не будешь в txt кидать.

А куда нужно пароль кидать и вообще как хранить данные в файлах, чтобы они были доступны только админу?


--------------------
Чё? Как? ©
PM MAIL WWW   Вверх
Mal Hack
Дата 1.8.2006, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Выше DocumentRoot, но скорее всего у тебя туда скрипт не сможет обратиться. Поэтому надо БД использовать.
PM ICQ   Вверх
Shark
Дата 1.8.2006, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



я сделал через БД у ся так...:
Код

if($_POST['author'] && $res['name'])
{
echo '<br>Ник -' .$res['name'].'' ;
}
else
{
echo "Пусто";
}


где $_POST['author'] - то, что вводит юрез,а  $res['name'] - то, что находится в БД... если пользователь верно ввел логин то пишется Ник, а если нет... то "Пусто"....

и далее я писал так
$_SESSION['current_user']=$res['name']; - и все...

но это я так... как новичек писал.... но все работает нормально....+ я еще писал,сравнение пароля, сравнение имени с паролем и т.д.... но это уже мелочи


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
Prompt
Дата 1.8.2006, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 22.2.2006

Репутация: нет
Всего: нет



Это проверка
Код

 if(isset( $_SESSION['id'])&& file_exists("sess.php")){
    $admin = file("sess.php");
    if($admin[1] == $_SESSION['id'] ){
    ...
    }
 }


А файл sess.php выглядит вот так
Код

<?php die;>
login
password


PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1482 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.