Авторизация без MySQL

 
0
 
PHP
ava
Sufius | 17.04.2004, 00:54
Помогите пожалуйста!
Не подскажите как можно сделать простой скрипт?
Человек вводит имя пользователя и пароль и в зависимости от этого попадает в определенную директорию. То есть каждому пользователю соответствует своя директория. И главное, чтобы логин/пароль/страница доступа были в текстовом файле!
Прошу, кто сможет киньте сюда ссылочку на скрипт, или сам скрипт, или на мыло [email protected]

P.S. Уважаемый модератор! Прошу прощения за то, что разместил тут не вопрос по скрипту, а просьбу помочь со скриптом... Я обыскал весь Yandex, но так и не смог найти решение... Тут моя последняя надежда найти способ сделать такой скрипт...

Спасибо!
Ответы (17)
ava
Secandr | 17.04.2004, 09:22 #
Я вижу два варианта:
1. Сделать самописную БД, где хранить логин, пароль и путь к каталогу. Подробнее читай на форуме, много таких топиков было. Был даже готовый скрипт для бд.

2. Сделать авторизацию встроиными средствами апача: создаёшь N папок и на каждую вешаешь свой пароль при помощи .htaccess
ava
Sufius | 17.04.2004, 11:36 #
Спасибо за советы!
Мне больше нравится второй вариант... Хотя я это не совсем пердставляю как сделать...
А вот такой способ можно сделать: из формы отправляются данные в файл -> если там есть совпадение логина/пароля, то пользователь перенаправляется на соответствующую страничку.
ava
Dr.Death | 17.04.2004, 11:53 #
Цитата
А вот такой способ можно сделать: из формы отправляются данные в файл -> если там есть совпадение логина/пароля, то пользователь перенаправляется на соответствующую страничку.

Так и делают.
ava
Secandr | 17.04.2004, 12:22 #
Sufius

Первый способ какраз спрашивает логин и пароль и посылает на нужную страничку.

Второй способ позволяет ограничить доступ к папкам. Хотя если сильно постараться, то можно добиться такого же результата, но я такаого не делал smile
ava
Sufius | 17.04.2004, 13:07 #
Люди!
А как это сделать???
Может кому не очень сложно на мыло кинуть хотя бы систему всего этого:
1. Есть страничка с формой ввода имени пользователя и пароля - это понятно...
2. При вводе логина/пароля данные отправляются в какой-то php файл... - тут непонятно что писать =(
3. В третьем файле (текстовом) хранятся данные в формате: Логин-Пароль-URL для этих логина/пароля... а как сделать, чтобы php файл "смотрел" на текстовый... и при совпадении логина/пароля перенаправлял на URL...

P.S. Извиняюсь за своё незнание, просто только недавно начал задаваться вопросами авторизации на php без использования БД...
P.P.S. Если не сложно отпишитесь сюда [email protected]....
ava
Dr.Death | 17.04.2004, 18:17 #
файл auth.php:

<?
$login = $_POST['login'];
$pass = $_POST['password'];
if(empty($login) or empty($pass) ) exit();
$lines = file("./auth.dat");
foreach($lines as $line)
{
$tmp = explode("|",$line);
if($tmp[0] == $login && $tmp[1] == $pass) Header("Location:$tmp[2]");
}
exit("У вас неправильный пароль или логин");
?>

файл auth.dat:

test|123|http://shev.esdesign.ru

А вот сами поля
<input type="text" name="login"></input>
<input type="text" name="password"></input>
ava
Sufius | 17.04.2004, 18:46 #
=(((
после ввода логина/пароля:
правильного (который в дат файле) - белый экран с адресом... http://имя сайта.ru/auth.php
неправильно - тот же эффект...
с пустыми полями - тот же эффект...

??? может я что-то не понимаю...
но он даже не выводит фразу У вас неправильный пароль или логин...

???
Заранее спасибо!
ava
[email protected] | 17.04.2004, 19:04 #
Цитата
Structure:

id | login | password from md5 hashe | access level

Separation char "|"



---------- users.dat:

1|Login1|5f4dcc3b5aa765d61d8327deb882cf99|1

2|Login2|5f4dcc3b5aa765d61d8327deb882cf99|2

3|Login3|5f4dcc3b5aa765d61d8327deb882cf99|11

4|Login4|5f4dcc3b5aa765d61d8327deb882cf99|9

----------

5f4dcc3b5aa765d61d8327deb882cf99 - md5('password');





---------- auth.php:

session_start();

if(!isset($_SESSION['member'])) {

    echo "<form action=\"auth.php\" method=\"post\">";

    echo "<input type=\"text\" name=\"login\"><br />";

    echo "<input type=\"password\" name=\"password\"><br />";

    echo "<input type=\"submit\" value=\"log in!\"><br />";

    echo "</form>";

    die("<b>Please Authorise...</b>");

} else if(isset($_POST['login']) and isset($_POST['password'])) {

    $line = file('base/users.dat');

    $c = sizeof($line);

    for($i = 0; $i < $c; $i++) {

        $ex = explode('|', trim($line[$i]));

        if(($ex[1] == $_POST['login']) and ($ex[2] == md5($_POST['password'])) and ($ex[3] <= PAGE_ACCESS_LEVEL)) {

            $member = $ex;

            session_register('member');

            header('location:/'.$_SERVER['PHP_SELF']);

        }

    }

    die('Authentication failed...');

}


И пример использования:
Цитата


--------- index.php:

define('PAGE_ACCESS_LEVEL', 1); // Создаем константу. Если у юзера аксесс левел больше чем тут указано, значит у него не достаточно прав для просмотра этой страницы.

include('phisycal_path/auth.php'); // Пропиши правильный путь до auth.php





ava
Sufius | 17.04.2004, 22:09 #
Спасибо... но все немного не так...
Пользователь заходит на страницу, где ему предлагают ввести логин и пасс...
После ввода он отправляется в директорию, которая ссответствует его комбинации логин/пароль...
Но так, чтобы напрямую через адресную строку он туда без авторизации попасть не смог...
ava
[email protected] | 18.04.2004, 01:11 #
Sufius , проблема в том что надо делать в любом случае подоьный скрипт, так как защита для файлов нужно в люом случае, скрпт каталог защитить не сможет, это можно с помощью .htaccess сделать.
ava
Sufius | 18.04.2004, 01:44 #
[email protected], не понял... а почему скрипт не может защитить директорию...
Я два месяца на сайте использовал этот скрипт и вроде бы ни разу он меня не подвел...
Но теперь вопрос встал о том, чтобы у каждого зарегистрированного пользователя были свои странички с его статистикой, персональными данными и страничкой новостей, предназначенных только ему...
А сделать это надо к понедельнику...
Вот и пытаюсь как-нибудь с помощью знающих людей что-либо сделать...
И Вам отдельное спасибо за помощь...
ava
Master | 19.04.2004, 10:49 #
Я себе представляю только защиту с помощью глобального перелапачивания прав файла... это кстати не плохая идея... например делаем модуль для движка... он ставит всем файлам кроме тех, которые в нем прописаны ([color= red;][/color] просмотра ресурса) права на то, что их читать нельзя :hehe

потом при запуске разрешенной страницы инляйдим от туда этот скрипт, указываем какие файлы надо расшарить для просмотра, а после загрузки скрипта зашариваем обратно smile

гемороя тут правда будет :p
ava
Akina | 19.04.2004, 10:58 #
найди в Инете статью "PHP-Based User Authentication" - автор Julie Meloni.
ava
guest | 19.04.2004, 12:28 #
Цитата
потом при запуске разрешенной страницы инляйдим от туда этот скрипт, указываем какие файлы надо расшарить для просмотра, а после загрузки скрипта зашариваем об

Я сейчас как раз нечто подобное делаю. Четырехуровневая защита. Самое главное что права можно будет выставить как в самом скрипте, так и через админ интерфейс, посредством занесения урлов (это могут быть как каталоги так и файлы). Но для того что бы это все работало, нужно проинклудить lock.php во все защищаемые файлы.
ava
[email protected] | 19.04.2004, 12:30 #
Прошлое сообщение мое.
ava
Sardar | 19.04.2004, 18:36 #
Цитата
нужно проинклудить lock.php во все защищаемые файлы.

Если на сервере апач, то можно используя mod_rewrite задать рег, отсылающий все URL не являющиеся точками входа(вызываемые скрипты) на страницу с посылом.
ava
[email protected] | 20.04.2004, 09:11 #
Sardar, не понял. можно подробнее, Апач будет перадресовывать все запросы на lock.php?
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
advanced
Отправить