[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Авторизация пользователей без БД
Survey
Уважаемые форумчане, подскажите плз., код проверки авторизации пользователя. Сверка вводимых данных и тех что в файле.
Есть на сайте PHP код для записи данных вводимых пользователем в файл.

Файл vopros.php
HTML
<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
<?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"); // редирект на предыдущую страницу

//Кстати редирект не работает, не пойму почему



Спустя 25 минут, 30 секунд (16.06.2009 - 20:33) stepan написал(а):
Я бы на твоем месте разграничитель какой нибудь поставил, а то у тебя в файле mes.txt каша какаята. А на счет авторизации делай форму для ввода данных и при нажатии кнопки чтобы считывались все значения из текстового файла в массив и сравнивай с введенными. Что не получится пиши, найдутся люди добрые.

Спустя 10 часов, 45 минут, 50 секунд (17.06.2009 - 07:18) Survey написал(а):
Насчёт разделителей согласен. Сейчас стоит перевод строки после третьего значения, т.е. навые данные (имя, пароль, вопрос) будут с новой строки.
По поводу проверки есть ли уже такой пользователь существует такой модуль:

PHP
<?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;
  }
}
}


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>
</body>
</html>

Но этот модуль не работает, что не так не могу понять.

Спустя 1 час, 35 минут, 16 секунд (17.06.2009 - 08:54) stepan написал(а):
Если я все правильно понял то тогда вот так:
Код
<?php

if ( isset ($_POST['name']) AND isset ($_POST['password']))
{

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

}else{$i++;}
}
}

?>


по редиректу сюда (смотри правильность написания)

И если ты делаеш
Цитата
$dat = explode (";", $data[$i]);
то тебе надо вот так:
Код
<?php header("Location: http://Твой_домен/vopros.php");
$file=fopen('mes.txt','a+');
fputs($file,$_POST['name'].";");
fputs($file,$_POST['password'].";");
fputs($file,$_POST['mes']."\r");
fclose($file);
echo 'Данные записаны в файл!'; //можно удалить
?>

Спустя 1 час, 20 минут, 25 секунд (17.06.2009 - 10:14) sergeiss написал(а):
Цитата (stepan @ 17.06.2009 - 09:54)
... то тебе надо вот так:
Код
<?php
....
echo 'Данные записаны в файл!'; //можно удалить
header("Location:http://Твой_домен/vopros.php"); // редирект на предыдущую страницу
?>

Степан! Ты уж ежели советы даёшь, то хотя бы не давай заведомо ошибочные советы. Потому что с таким кодом человек придет опять на форум, но уже со "стандартным" вопросом "Что мне делать с ошибкой Cannon modify header...?"

Спустя 13 минут, 56 секунд (17.06.2009 - 10:28) stepan написал(а):
Цитата (sergeiss @ 17.06.2009 - 07:14)
Что мне делать с ошибкой Cannon modify header...?"

Эксперту видней cool.gif

Спустя 56 минут, 41 секунда (17.06.2009 - 11:25) sergeiss написал(а):
Цитата (stepan @ 17.06.2009 - 11:28)
Цитата (sergeiss @ 17.06.2009 - 07:14)
Что мне делать с ошибкой Cannon modify header...?"

Эксперту видней cool.gif

А ты понял, почему я это написал? wink.gif

Если да - то давай сам же и корректируй свой совет, чтобы он был правильный, чтобы человека в заблуждение не вводить.

Спустя 40 минут, 8 секунд (17.06.2009 - 12:05) stepan написал(а):
Цитата (sergeiss @ 17.06.2009 - 08:25)
давай сам же и корректируй свой совет, чтобы он был правильный

Я так понял что ошибку "Cannon modify header" он выводит потому что перед хедером выводится какой то текст.

Спустя 5 минут, 25 секунд (17.06.2009 - 12:10) sergeiss написал(а):
Цитата (stepan @ 17.06.2009 - 13:05)
Я так понял что ошибку "Cannon modify header" он выводит потому что перед хедером выводится какой то текст.

Именно так! Поэтому рекомендация типа
PHP
echo 'Данные записаны в файл!'//можно удалить
header("Location:http://Твой_домен/vopros.php"); // редирект на предыдущую страницу

является некорректной, потому что перед хедером выводятся данные. На самом деле, это можно обойти... Но нужнго делать дополнительные телодвижения.
Плюс к этому, это даже и не логично smile.gif Какой вообще смысл выводить текст, если он тут же исчезнет по причине перехода на другую страницу?

Спустя 5 минут, 51 секунда (17.06.2009 - 12:16) stepan написал(а):
Цитата (sergeiss @ 17.06.2009 - 09:10)
Именно так!

пока сам помогал, окозалось что самому чуть ли не понадобилась помощь laugh.gif

Спустя 23 минуты, 56 секунд (17.06.2009 - 12:40) glock18 написал(а):
Цитата (stepan @ 17.06.2009 - 09:16)

пока сам помогал, окозалось что самому чуть ли не понадобилась помощь laugh.gif

Ничего smile.gif Зато сам разобрался в этом wink.gif

Спустя 9 минут, 17 секунд (17.06.2009 - 12:49) stepan написал(а):
Цитата (glock18 @ 17.06.2009 - 09:40)
Ничего smile.gif Зато сам разобрался в этом wink.gif 

Это точно
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.