|
|
|
| Уважаемые форумчане, подскажите плз., как написать модуль авторизации пользователей без БД.
Есть модуль, который записывает в файл данные введённые пользователем
Файл vopros.php
<form action="action.php" method="post">
<p>Ваше имя<br>
<input name="name" type="text" class="lnews_data" size="30">
</p>
<p>Ваш пароль<br>
<input name="password" type="text" class="lnews_data" size="40">
</p>
<p>Ваш вопрос<br>
<textarea name="mes" cols="50" rows="5" class="lnews_data"></textarea>
</p>
<p>
<label>
<input type="submit" name="submit" id="submit" value="спросить">
</label>
</p>
</form>
Файл action.php
<?php
$_POST[''];
$file=fopen('mes.txt','a+');
fputs($file,$_POST['name']);
fputs($file,$_POST['password']);
fputs($file,$_POST['mes']."\r");
fclose($file);
echo 'Данные записаны в файл!'; //можно удалить
header("Location:vopros.php"); // редирект на предыдущую страницу
?>
//Кстати редирект не работает, не пойму почему
Файл mes.txt - пустой
Нужен модуль, который проверяет вводимые пользователем данные и сверяет их с данными из файла. Т.е. проверяет зарегистрирован ли пользователь ранее.
Подскажите реализацию кто сталкивался с такой же проблемой. | |
|
|
|
|
|
|
|
для: survey
(17.06.2009 в 07:45)
| | - Редирект не работает, т.к. перед функцией header есть вывод данных (echo)
- Пользователей можно хранить в PHP-файле, т.е. создать двумерный массив (но это не безопасно):
<?php
$user = array (
array ('name'=>'admin', 'password'=>'admin'),
array ('name'=>'user', 'password'=>'user')
);
?>
|
- Для хранения данных о пользователях удобно использовать CSV-файлы (в нем поля разделены специальным символом), а в PHP есть стандартные функции для чтения таких данных в массив. Плюс в дальнейшем этот файл можно легко импортировать в любую БД. | |
|
|
|
|
|
|
|
для: survey
(17.06.2009 в 07:45)
| | можно записывать в таком формате fputs($file,$_POST['name']."=".$_POST['password']);
а потом с помощью регулярных выражений искать сравнения например
if($_POST['password']==ereg_replace("^[.$_POST['name']."]=,"",строка из текстового файла)) | |
|
|
|
|
|
|
|
для: guye
(17.06.2009 в 12:10)
| | >if($_POST['password']==ereg_replace("^[.$_POST['name']."]=,"",строка из текстового файла))
Задав регулярное выражение в $_POST['name'] получаем прекрасный инструмент для брута:)
А вообще будет удивительно если так хоть кто-то авторизуется через этот код. | |
|
|
|
|
|
|
|
для: Loki
(17.06.2009 в 12:34)
| | Проблема в "вытаскивании" строки из текстового файла.
Сейчас так:
<?php
if ( isset ($name) AND isset ($password))
{
$data = File ("mes.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;
}
}
}
?>
Всё прекрасно, но не работает.
А по поводу "вообще будет удивительно если так хоть кто-то авторизуется через этот код" отвечу следущее: авторизация в данном случае не инструмент контроля входа в "запретную зону", а способ получить обратную связь с клиентом который авторизовался. | |
|
|
|
|
|
|
|
для: survey
(17.06.2009 в 17:07)
| | <?php
if ( isset ($name) AND isset ($password))
И откуда эти переменные возьмутся, если ни одна из них не определена? | |
|
|
|
|
|
|
|
для: Trianon
(17.06.2009 в 17:29)
| | Есть форма в HTML здесь я полагаю и определены переменные.
<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>
</html>
Но тем не менее всё это не работает. Если не сложно объясните плз. мои ошибки.
В PHP недавно залез, вообще я занимаюсь SEO. | |
|
|
|
|
|
|
|
для: survey
(17.06.2009 в 18:09)
| | >Есть форма в HTML здесь я полагаю и определены переменные.
Форма сама по себе переменные не определяет. | |
|
|
|
|
|
|
|
для: survey
(17.06.2009 в 17:07)
| | - | |
|
|
|
|
|
|
|
для: survey
(17.06.2009 в 17:07)
| | - | |
|
|
|
|
|
|
|
для: survey
(17.06.2009 в 17:07)
| | - | |
|
|
|
|
|
|
|
для: survey
(17.06.2009 в 17:07)
| | - | |
|
|
|
|
|
|
|
для: survey
(17.06.2009 в 17:07)
| | - | |
|
|
|