Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Закрытая темаСоздание новой темыСоздание опроса

> Регистрация и авторизация пользователей без БД
Grievous  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 25
Пользователь №: 3575
На форуме: 10 лет, 19 дней
Карма:




Скажите пожалуйста как можно осуществить регистрацию и авторизацию пользователей без использования базы данных MySQL.

Проблема такая: использование MySQL не подразумевается (неважно почему).
Надо производить регистрацию и авторизацию пользователей средствами одного только PHP, записью в файлы и прочее.

Буду рад ссылкам и примерам.

Заранее спасибо



Спустя 2 часа, 53 минуты, 37 секунд (24.11.2007 - 21:50) phpmaster написал(а):
Примерно так:

1. Сначала форма регистрации. Я её код здесь приводить не буду, потому что это чистый HTML. Предположим там 2 поля - логин, пароль.
2. Запись всего этого в файл. Делается примерно так:

Код
<?php

$filename = "file.txt";
if (!file_exists($filename))
{
          $fp = fopen($filename, "w");
}
else
{
          $fp = fopen($filename, "a");
}

fwrite($fp, $_POST['login']."\r\n");
fwrite($fp, $_POST['pass']."\r\n");


fclose($fp);
/* При этом $_POST['login'] и $_POST['pass'] - данные, полученные из формы. Их можно проверить на верность, как-то обработать - здесь уже ваша фантазия. Я привожу костяк скрипта */

?>

3. Авторизация пользователя. Тут могут быть ошибки, буду комментировать.
Код
<?php

$file = fopen("file.txt") or die("Невозможно открыть файл!");
$data_array = file("file.txt");
?>

Последний оператор в коде поместит все строки файла в массив. Здесь я просто не очень помню, в каком виде они хранятся, поэтому дальше приведу саму суть скрипта.

Получив данные, нужно запустить цикл по массиву. И каждое значение сравнивать с переданными данными из формы. Как только значения совпадут - оператором break прервать цикл и, соответственно, авторизовать юзера. Соответственно, если прошлись по массиву и ни одно значение не подошло - неверный логин или пароль.

Ну вот... надеюсь, помог smile.gif если что не так, пишите, разберёмся. Я за свои скрипты отвечаю smile.gif

Спустя 15 минут, 9 секунд (24.11.2007 - 22:05) Grievous написал(а):
Спасибо!

Спустя 1 год, 5 месяцев, 20 дней, 21 час, 29 минут, 19 секунд (15.05.2009 - 18:34) alexander_21777 написал(а):
Здравствуйте, пожалуйста напишите весь код и структуру какталога, какой код в какой файл записывать.
Очень прошу Вас помочь

Спустя 1 день, 1 час, 38 минут, 10 секунд (16.05.2009 - 20:13) alexander_21777 написал(а):
Сейчас скачал скрипт без БД. Скрипт польностью рабочий.
Вопрос: Помогите добавить форму подтверждение пароля, вернее его скрипт, который, будет проверять на совпадение паролей.

Посмотрите пожалуйста своим опытным глазом:

1) Архив состоит из папки registration, в которую входят файлы: login.php, registration.php, register.txt

2) login.php:

<!--Здесь ни чего не менять!!!-->
PHP
<?php

  
if ( isset ($name) AND isset ($password))
{

$data File ("register.txt");
$pass =($password);
for (
$i=0;$i<count($data);$i++) {
$dat explode (";"$data[$i]);
if (
$name == $dat[0] && $pass."\r\n" == $dat[1])
  {
  echo 
"<b><center>Зона зарегистрированных пользователей</b><p><a href=\"\">Ссылка 1</a><p><a href=\"\">Ссылка 2</a>";
  exit;
  }
}
}

?>

<!--Здесь можно изменить html код, но не меняйте строку "form action"-->
<html>
<body>
<b><center>Вход для зарегистрированных пользователей</b></center>
<form action=<?php print $PHP_SELF ?> method=post>
<table>
<tr><td>Введите ваш логин<td><input type=text size=15 name=name></tr>
<tr><td>Ваш пароль<td><input type=text size=15 name=password></tr>
</table>
<p><input type = submit value="Âõîä">
</form>
</





3) registration.php:

<!--Здесь ни чего не менять!!!-->
PHP
<?php
if ( isset ($name) AND isset ($password) )
{
$data File ("register.txt");
for (
$i=0;$i<count($data);$i++) {
$dat explode (";"$data[$i]);
if (
$name == $dat[0])
{
echo 
"<b><center>Извините, пользователь с таким именем уже зарегистрирован!";
exit;
}
}
$pass =($password);
$fp fopen ("register.txt""a");
flock $fp1);
fputs ($fp$name.";".$pass."\r\n");
flock ($fp3);
fclose ($fp);
echo 
"<b><center><h2>Спасибо вы зарегистрированны!";
exit;
}

<!--Здесь можно изменить html код, но не меняйте строку "form action"-->
HTML
<html>
<body>
<center><b><h3>РЕГИСТРАЦИЯ</h3></b></center><p>
<form action=<?php print $PHP_SELF ?> method=post>
<table>
<tr><td>
<center>Ваше имя<td><input type=text size=15 name=name></tr><br>
<tr><td><center>Выберите пароль<td><input type=text size=15 name=password></tr><br>
</table>
<p><input type=submit value="Зарегистрироваться">
</form></body></html>
?>





3) register.txt:

Пуста.

Спустя 9 минут, 38 секунд (16.05.2009 - 20:22) FatCat написал(а):
Пароль в открытом виде хранится в txt-файле?
Прикольненько. А что бы сразу на главную страницу не вывести табличкой список зарегеных логинов вместе с их паролями?

Спустя 1 час, 48 минут, 11 секунд (16.05.2009 - 22:10) Семён написал(а):
FatCat я как только увидел код заулыбался smile.gif , а потом смотрю ты уже опередил меня с тем же самым ответом. smile.gif

Спустя 18 часов, 43 минуты, 13 секунд (17.05.2009 - 16:54) alexander_21777 написал(а):
Я понимаю, мне до вашего уроня долеко. Я вообще не разбираюсь в php, просветите пож., нужен такой скрипт срочно - форма подтверждения пароля и скрипт, который бы проверял пароли на идентичность.


Помогите пожалуйста smile.gif

Спустя 2 минуты, 49 секунд (17.05.2009 - 16:56) Grazor написал(а):

Спустя 3 дня, 2 часа, 42 минуты, 23 секунды (20.05.2009 - 19:39) Guest написал(а):
спасибо, но мне не нужно шифровать пароли, так и должно быть, мне просто форма подтверждения пароля и сам скрипт проверяющий на совпадение нужены

Спустя 14 минут, 17 секунд (20.05.2009 - 19:53) Guest написал(а):
спасибо, но мне не нужно шифровать пароли, так и должно быть, мне просто форма подтверждения пароля и сам скрипт проверяющий на совпадение нужены


--------------------------

Помогите, реально помощь нужна срочно, а вермени на освоить сейчас нет.

Спустя 7 дней, 16 часов, 8 минут, 16 секунд (28.05.2009 - 12:01) Tamplier написал(а):
в форме повтори строку с паролем, изменив имя:
HTML
<tr><td><center>Выберите пароль<td><input type=text size=15 name=password></tr>
<tr><td><center>Подтвердите пароль<td><input type=text size=15 name=password2></tr>


Потом в скрипте registration.php добавь проверку:
PHP
&#60;!--Здесь ни чего не менять!!!-->

<?php
if($password!=$password2){
echo 
"<b><center>Извините, пароли не совпадают!";
exit;
}
elseif ( isset (
$name) AND isset ($password) )
{ ...

Кстати для шифрования паролей тоже много ума не надо.
Просто пароль перед запись и сверкой с фалом надо пропустить через функцию md5.

Спустя 12 дней, 22 часа, 36 минут, 44 секунды (11.06.2009 - 10:38) Glinda написал(а):
скачал скрипт, установил
При нажатии кнопки регистрации выводится сообщение:

The requested URL /method=post was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Не подскажите что делаю не так? Хостинг платный, с поддержкой PHP

Спустя 1 год, 9 месяцев, 14 дней, 8 часов, 43 минуты, 26 секунд (25.03.2011 - 20:22) sMoky написал(а):
Цитата
скачал скрипт, установил
При нажатии кнопки регистрации выводится сообщение:

The requested URL /method=post was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Не подскажите что делаю не так? Хостинг платный, с поддержкой PHP


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

Спустя 2 дня, 16 часов, 9 минут, 49 секунд (28.03.2011 - 11:31) akv написал(а):
Можно создать директорию users, в которой будем складывать папки типа UserName. То-есть при регистрации будет создаваться папка, в ней файл UserName.php и файл md5(UserPassword).php. А дальше будем проверять, есть ли файл UserName & md5(UserPassword).php.
Могу скинуть весь скрипт, пишите на: andrue.konst@gmail.com

Спустя 17 дней, 10 часов, 27 минут, 35 секунд (15.04.2011 - 21:59) EASYMAN написал(а):
Цитата (FatCat @ 16.05.2009 - 17:22)
Пароль в открытом виде хранится в txt-файле?
Прикольненько. А что бы сразу на главную страницу не вывести табличкой список зарегеных логинов вместе с их паролями?

ВОТ ЭТО ТОЧНО СКАЗАНО biggrin.gif


--------------------
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Закрытая темаСоздание новой темыСоздание опроса