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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Система авторизации без БД 
:(
    Опции темы
XOMbl4
Дата 4.1.2006, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Форумное жывотнае
*


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

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



Собсно нужно зделать систему авторизации без использования БД,нужно применить файлы для хранения.У меня пока не получилоси это сделать,вот мой код:

Я непонимаю в чем проблема,постоянно пишет про неверный логин(((
Код



<?php
session_start();
print("<title>Àäìèíêà</title>");
$_SESSION["login"]=$_REQUEST["login"];
$_SESSION["paasword"]=$_REQUEST["paasword"];
if(!$_SESSION["login"]){
 print("<center>Íå ââåäåí ëîãèí.</center>");
  exit();
}
if(!$_SESSION["paasword"]){
 print("<center>Íå ââåäåí ïàðîëü.</center>");
  exit();
}

$us=file("XOMbl4/uzvers.txt");
foreach($us as $val){
list($log, $pass, $ind)=explode("^^","$val");
    if($_SESSION["login"]!==$log) {
       print("Ëîãèí íåâåðåí");
       exit();
    }else{
        if($_SESSION["paasword"]!==$pass ){
        print("Ïàðîëü íåâåðåí");
        exit();
     }else{
        if($ind!==$ind){
         print("Ãûã");
        }else{

Тут админка
}
}
}
}

?>

ЗЫ:А чего так криво код вставляецца?

Это сообщение отредактировал(а) XOMbl4 - 4.1.2006, 14:07
PM MAIL ICQ   Вверх
Guedda
Дата 4.1.2006, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


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

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



Цитата

Я непонимаю в чем проблема,постоянно пишет про неверный логин((( Добавлено @ 13:59 Блин,а чего код криво вставляется???

Так вот... У меня такая же проблема, исправить обещали.
А по правилам как действовал я... Вот, собственно, метод, который я где-то отрыл в инете.:
Цитата

Сначала создать файл admandpass.php. В нем написать следующее:
Код

<?
  $name_admin="Твое имя";
  $temp_pass="Твой пароль";
  $adm_pass=md5($temp_pass);
?>


После этого пишем сисму авторизации index.php:
Пояснения: pass_b : введенный пароль; login - введенный логин
Код

  include("admandpass.php");
  $pass_user=md5($pass_b);
  if($pass_user==$adm_pass and $login==$name_admin)
  {
    setcookie("log[1]", "$pass_user",time()+3600, '/'); 
    setcookie("log[2]", "$login",time() + 3600, '/');
    print "Вы вошли в систему";
    print "<META http-equiv=\"refresh\"content=\"0;URL=admin.php\">";
  }
    else
  {
    print "Неправильный логин или пароль";
    print "<META http-equiv=\"refresh\" content=\"1;URL=index.php\">";
  }

И потом в каждом модуле, которые Вы хотите защитить, пишите:
Код

<?
  include("admandpass.php"); 
  if($log[1] !=$adm_pass and $log[2] !=$name_admin)
  {
    print "<META http-equiv=\"refresh\" content=\"0;URL=index.php\">";
  }
?>


Вот этим я и пользуюсь.

Это сообщение отредактировал(а) Guedda - 4.1.2006, 14:11


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
XOMbl4
Дата 4.1.2006, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Форумное жывотнае
*


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

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



Мне нужно не для админа а для юзверей,то есть народ регицца,в файл пишутся данные типа log^^pass^^id,и потом по ним нада работать,для сибя я через хтаксес зделал защиту,дабы не парицца.
PM MAIL ICQ   Вверх
AztEK
Дата 4.1.2006, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Guedda
Плохой пример!
Через Cookies делать авторизацию нельзя!

Я использую такое:
Код

session_start();

/*

Получаем данные, бд, файлы, неважно...
$name - логин
$pass - пароль

*/

if (isset($_POST['name']) && isset($_POST['pass']))
{
    unset($_SESSION['name']);
    unset($_SESSION['pass']);
        
        if (md5($_POST['name']) == $name && md5($_POST['pass']) == $pass)
        {
            $logined = 1;
            $_SESSION['name'] = md5($_POST['name']);
            $_SESSION['pass'] = md5($_POST['pass']);
        }
        else
        {
            $logined = 0;
        }
    }
}

if (!(isset($_SESSION['name']) && isset($_SESSION['pass'])))
{
    $logined = 0;
}
else
{
    if ($_SESSION['name'] == $name && $_SESSION['pass'] == $pass)
    {
        $logined = 1;
    }
    else
    {
        $logined = 0;
        unset($_SESSION['name']);
        unset($_SESSION['pass']);
    }
}

if ($logined)
{
//сама страница, можно include другой
}
else
{
//показываем форму авторизации
}


В принципе надо ещё HTTP_REFERER смотреть, но это уже трабл...
Добавлено @ 15:44
Блин, ну почему код криво отображается? :smile


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


Форумное жывотнае
*


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

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



Блин,опять же,трабл у миня не в сравнивании а в получении этих самых данных,в файле с логинами много этих самых логинов,проблема в их получее,сравнить то лико....
PM MAIL ICQ   Вверх
Mal Hack
Дата 4.1.2006, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(AztEK @ 4.1.2006, 15:44 Найти цитируемый пост)

Через Cookies делать авторизацию нельзя!

Все можно. Только надо понимать, что при любой авториазции хранить данныев одном месте нельзя.

Ребят, есть же статья: http://vingrad.ru/PHP-ART-002849, где вместо запросов к БД надо реализовать чтение и запись в файл. Алгоритм там уже есть.
PM ICQ   Вверх
CyClon
Дата 5.1.2006, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Если хочешь красивую... То только с файлами + Куки...
А если нет - .htpasswd .htacces или как там их...


--------------------
user posted image
PM   Вверх
XOMbl4
Дата 5.1.2006, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Форумное жывотнае
*


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

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



Да блин(((Проблема в том,что я не могу организовать считывание логинов-паролей,бд нет,потому делаю на файлах(((
PM MAIL ICQ   Вверх
wsr
Дата 7.1.2006, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Fuzzy Logic
*


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

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



Цитата(XOMbl4 @ 5.1.2006, 17:06 Найти цитируемый пост)

Да блин(((Проблема в том,что я не могу организовать считывание логинов-паролей,бд нет,потому делаю на файлах(((

Ну ты что, не можешь прочитать то!
Допустим у тебя пассы и логины храняться в файле следующим образом :
пасс|логин
пасс|логин
пасс|логин
пасс|логин
Так тебе нужно то всего лишь пройтись по файлу в поисках нужных полей!
Код

<?php
    $fp = file("some_auth_text_file");
    for ( $i = 0 ; $i<sizeof($fp); $i++):
         list ($pass, $login)  = explode ("|", $fp[$i]);
         # А тут уже проверяешь подходит ли пасс с логином! И если подходит, то делаешь что нужно!
         # Можешь конечно прогнать $pass, $login через trim, а то мало ли!
    endfor;
?>


Вроде бы все просто!
--------------------
 ICQ : 918-318Сайт : Lock-Team 
PM MAIL WWW ICQ   Вверх
XOMbl4
Дата 7.1.2006, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Форумное жывотнае
*


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

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



Вот мой код:
Код

<?php
session_start();
$_SESSION["login"]=$_REQUEST["login"];
$_SESSION["paasword"]=$_REQUEST["paasword"];
if(!$_SESSION["login"]){
 print("<center>е вееден логин.</center>");
  exit();
}
if(!$_SESSION["paasword"]){
 print("<center>Не введен пароль.</center>");
  exit();
}

$us=file("XOMbl4/uzvers.txt");
for ( $i = 0 ; $i<count($us); $i++){
list($log, $pass, $ind)=explode("^^","$val");
    if($_SESSION["login"]!==$log) {
       print("Логин неверен");
       exit();
    }else{
        if($_SESSION["paasword"]!==$pass ){
        print("Пароль неверен");
        exit();
     }else{


Тут админка
}
}
}
}

?>

Читат тока последнуу строку из файла,если ввести данные из последней строки-все окей,если из какой либо другой-не пускает(((

Это сообщение отредактировал(а) XOMbl4 - 7.1.2006, 15:03
PM MAIL ICQ   Вверх
DrNemo
Дата 7.1.2006, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 7.12.2005
Где: Не пейте ракетное топливо! :-)

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



а вот с этим я сталкивался:


Код

$mas = file ("../users/user.txt"); 
    foreach ($mas as $value){    
    list($id,$logins,$passs)=explode(";;","$value"); //Разбиваем файл
    if($_POST['login'] == $logins):
         $dd="1"; 
    elseif($_POST['pass']==$passs):
         $dd="2";
         break;
    else:   
         $dd="0";
    endif;
    }

//далее вывод:
if($dd==1):
 .....
elseif($dd==2):
 .....
elseif($dd==0):
 .....
endif;    


Это сообщение отредактировал(а) DrNemo - 7.1.2006, 21:51
--------------------
На свете есть только две вещи которые сносят башню - космос и женщины (К.Ю.Бунин)Самый мастдаевский сакс в том, что рулезные фичи глючат :))
PM MAIL WWW ICQ   Вверх
XOMbl4
Дата 7.1.2006, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Форумное жывотнае
*


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

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



Хитро)))Ща попробую)))
ЗЫ:Где то слышал,что можно определить,нажата ли была кнопка в форме или нет,а вот как?пробовал конструкцию вида
if(!ИМЯ_ФОРМЫ){
}
Но не покатило(
PM MAIL ICQ   Вверх
Illuminaty
Дата 7.1.2006, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


/*Антон Захаров*/
***


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

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



Цитата(XOMbl4 @ 7.1.2006, 18:04 Найти цитируемый пост)

ЗЫ:Где то слышал,что можно определить,нажата ли была кнопка в форме или нет,а вот как?
Если у кнопки name="mybutton", то проверяй
Код

isset($_POST["mybutton"])

PM MAIL ICQ   Вверх
Guedda
Дата 9.1.2006, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


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

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



Цитата(XOMbl4 @ 4.1.2006, 14:19)
Мне нужно не для админа а для юзверей,то есть народ регицца,в файл пишутся данные типа log^^pass^^id,и потом по ним нада работать,для сибя я через хтаксес зделал защиту,дабы не парицца.

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


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
XOMbl4
Дата 9.1.2006, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Форумное жывотнае
*


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

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



Да пусть читают наздоровье,во первых это .php файл,во творых там хранятся хеши,а не сами пароли,md5() рулит.
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0887 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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