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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> алгоритм авторизации 
V
    Опции темы
FortMax
  Дата 16.11.2009, 01:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 485
Регистрация: 2.10.2006
Где: Россия, г. Бироби джан ЕАО

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



Доброго времени суток !!!
Хочу самостоятельно реализовать авторизацию на сайте, хочу у Вас спросить правильным путем я иду ???
Сделал так: есть есть индекс-страница с формой, после заполнения полей имя и пороль, жмется кнопка и у меня загружается эта же страница, но в самом начале происходит проверка, установлены переменные передоваемые по методу post или нет, если установленны, то скрипт проверяет наличие такого пользователя и пароля  в БД, если он есть то меняет содержимое страницы на приветственную надпись. При нажатии кнопки выход, опять грузится эта же страница, но при этом сбрасываются переменные(кроме IE6). Вот такую я сделал автроизацию, не очень вроде элегантно для первого раза получилось  smile 
Может кто раскажет на пальцах, как можно сделать лучше ???


--------------------
user posted image
PM MAIL ICQ   Вверх
NetJunky
Дата 16.11.2009, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



FortMax, код в студию, а то на самом деле выходит на пальцах.


--------------------
Sleep, those little slices of death; Oh how I loathe them. © Edgar Allan Poe
Таллиннцы http://vingrad.ru/groups.php?action=group_...mp;group_id=139

Для записи данных объёмом 1 Терабайт на бумагу, нужно срубить 50000 деревьев.
PM MAIL WWW ICQ Skype MSN   Вверх
FortMax
Дата 16.11.2009, 04:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 485
Регистрация: 2.10.2006
Где: Россия, г. Бироби джан ЕАО

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



для написания использую CodeIgniter 
Код
<?php 
class Main extends Controller {
    function __construct()
    {
        parent::Controller();
        $this->load->view('header');
        
        @$data['name']=$_POST['user_name'];
        @$data['password'] =$_POST['password'];
        
        if(!isset($data['name']) && !isset($data['password']))
        $this->load->view('header_logout');
        else
        {
            $this->load->model('login_model', 'mAccount');
            $this->mAccount->mLogin($_POST['user_name'], $_POST['password']);
        }
    }
    
    function index()
    {
        $this->load->view('foother');
    }
}
?>




--------------------
user posted image
PM MAIL ICQ   Вверх
MoLeX
Дата 16.11.2009, 07:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

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



немного старческого брюзжания

Код

@$data['name']=$_POST['user_name'];
@$data['password'] =$_POST['password'];
        
if(!isset($data['name']) && !isset($data['password']))
  $this->load->view('header_logout');
else
{
  $this->load->model('login_model', 'mAccount');
  $this->mAccount->mLogin($_POST['user_name'], $_POST['password']);
}


1. присваиваем массиву $data соответствующие значения из $_POST 
2. при передачи данных в mLogin() используем $_POST (зачем действие 1 тогда?)

Добавлено через 44 секунды
P.S. в данном случае не надо создавать массив дата, хватит одного поста


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
FortMax
Дата 16.11.2009, 07:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 485
Регистрация: 2.10.2006
Где: Россия, г. Бироби джан ЕАО

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



MoLeX, масив из предыдущей методики остался  smile 


--------------------
user posted image
PM MAIL ICQ   Вверх
MoLeX
Дата 16.11.2009, 07:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

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



FortMax, если ты его используешь, то используй везде а не в половине проекта)


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
FortMax
Дата 16.11.2009, 08:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 485
Регистрация: 2.10.2006
Где: Россия, г. Бироби джан ЕАО

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



через массив $date передаются данные в отображения, я его просто удалить забыл, но суть вопроса не в этом  smile 


--------------------
user posted image
PM MAIL ICQ   Вверх
MoLeX
Дата 16.11.2009, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

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



Цитата(FortMax @  16.11.2009,  01:49 Найти цитируемый пост)
но при этом сбрасываются переменные(кроме IE6)

это браузер запоминает


Цитата(FortMax @  16.11.2009,  01:49 Найти цитируемый пост)
не очень вроде элегантно для первого раза получилось 

да в принципе нормально, только я в последнее время авторизирую пользователей через

Код

    header('WWW-Authenticate: Basic realm="AuthControlPanel"');
    header('HTTP/1.0 401 Unauthorized');



--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
FortMax
Дата 16.11.2009, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 485
Регистрация: 2.10.2006
Где: Россия, г. Бироби джан ЕАО

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



MoLeX, можно поподробней про эту методы ??? smile 


--------------------
user posted image
PM MAIL ICQ   Вверх
MoLeX
Дата 16.11.2009, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

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



Код

if( $_SERVER['PHP_AUTH_USER'] !== 'login' AND $_SERVER['PHP_AUTH_PW'] == 'passw' )
{
    header('WWW-Authenticate: Basic realm="AuthControlPanel"');
    header('HTTP/1.0 401 Unauthorized');
    exit();
}

?!


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
FortMax
  Дата 17.11.2009, 08:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 485
Регистрация: 2.10.2006
Где: Россия, г. Бироби джан ЕАО

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



MoLeX,  а на сколько всё это дело безопасно ?

Это сообщение отредактировал(а) FortMax - 17.11.2009, 08:14


--------------------
user posted image
PM MAIL ICQ   Вверх
MoLeX
Дата 17.11.2009, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

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



FortMax, а насколько может быть безопасен код написанный человеком?

Добавлено через 9 секунд
тут все зависит от тебя


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
nerezus
Дата 17.11.2009, 11:20 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


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

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



MoLeX, как минимум проверка найдет логические ошибки.

Цитата

а на сколько всё это дело безопасно ?
 Опасно. Безопасно вот так:

if( $_SERVER['PHP_AUTH_USER'] !== 'login' or $_SERVER['PHP_AUTH_PW'] !== 'passw' )


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
WolfMax
Дата 17.11.2009, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Может быть тебя заинтересует этот алгоритм авторизации 

http://code-igniter.ru/wiki/%D0%90%D0%B2%D...%B3%D0%B8%D0%B8 

Я пользуюсь - удобно и грамотно
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.0910 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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