SamForum.org  
SamLab.ws
Заблокированные пользователи

Вернуться   SamForum.org > Программирование > Web-программирование
Важная информация

Ответ
 
Опции темы Опции просмотра
Разработка алгоритмов
Старый Добавлено: 21.11.2007, 17:43
  (#1)
Romantic
TranceSmile
Заслуженный пользователь
 
Аватар для Romantic

Вопрос Разработка алгоритмов

Всем привет! Помогите пожалуйста розработать алгоритм регистрации на сайте с помощью файлов! Зарание благодарен!


Сегодня сижу за компом... Из старой пластмассовой компьютерной колонки вылез паук, посмотрел по сторонам и обратно уполз в колонку... Первая мысль - Доктор Веб...обновления проверял...))
Я веду себя как положено, а положено у меня на все....
Жизнь нужно прожить так, чтобы было приятно вспомнить, но стыдно рассказать детям...
Пишу на С++ за еду...
Romantic вне форума Отправить личное сообщение для Romantic
Вверх
Ответить с цитированием
Старый Добавлено: 02.01.2008, 17:47
  (#2)
White Charmer
Заслуженный
Заслуженный пользователь
 
Аватар для White Charmer

По умолчанию

Хм... Сам такого не делал, но поробую помочь. Итак, что нам надо знать о пользователе? Как минимум, логин и пароль, а чтобы было удобней работать - уникальный ИД, например, его порядковый номер. Значит, простейшая база пользователей будет записанна в таком виде:
1||логин1||пароль1
2||логин2||пароль2
...
Как несложно догадаться - это такая же таблица, как и в БД, только записанная в файл, где разделителями строк служит символ \n (перевод строки), а разделитель столбцов - знак "||" (можно использовать любые другие, которые не встречаются в других местах). Как проверить, что введенные пользователем данные верны? Читаем файл по строкам в массив при помощи функции file(); затем разбиваем в цикле каждую строку на отдельные значения:
$f=file('users.txt');
for($i=0;$i<=count($f);$i++)
{
$a=explode("||",$f[$i]); //В $a получаем массив $a[0] - ИД, $a[1] - логин, $a[2] - пароль
//Убираем лишние пробельные символы, т.к. file() читает строки вместе с знаком \n
$a[2]=trim($a[2]);
if($_GET['login']==$a[1] && md5($_GET['password'])==$a[2])
{
//Выставляем сессию
}
else
{
//Сообщаем о неправильном вводе
}

Обрати внимание на то, что сессия выставляется как заголовок, поэтому надо это делать до какого-либо вывода текста в браузер. Также обрати внимание на то, что сессия начнет работать не сразу, поэтому после выставления сессии посылаем заголовок переадресации header("Location: index.php"); (ну или малюем акошко с надписью "вы зашли как $a[1]", нажмите сюда для перехода, если это не произошло автоматически).
Теперь по поводу регистрации. Если необходимо проверить e-mail юзера, то нам нужна либо еще одна таблица ожидающих регистрацию, либо еще одно поле в уже существующей, где будет запись о том, что пользователь активен. При заполнении формы делается новая строчка в файле данных, а на указанный адрес высылается ссылка примерно такого вида: email_check.php?user_id=номер_пользователя При переходе по такой ссылке скрипт по переданнуму ИДу читает нужную строчку в файле и делает соотв. изменения.

При реализации такого алгоритма надо будет много работать со строками. Это может помочь:
Удаление строки из файла по ее номеру
<?
if ($id != "")
{
$id--;
$file=file("file.txt");
$fp=fopen("file.txt","w");
for($i=0;$i<sizeof($file);$i++)
{
if($i==$id)
{
unset($file[$i]);
}
}
fputs($fp,implode("",$file));
fclose($fp);
}
?>

Изменение строки происходит по томуже принципу, только вместо unset стави конструкцию
$a=explode('||',$file);
$a[1]="новое значение";
implode("||",$a);
White Charmer вне форума Отправить личное сообщение для White Charmer
Вверх
Ответить с цитированием
Этот пользователь сказал cпасибо за это полезное сообщение:
Romantic (03.01.2008)
Старый Добавлено: 03.01.2008, 02:03
  (#3)
Romantic
TranceSmile
Заслуженный пользователь
 
Аватар для Romantic

По умолчанию

White Charmer, спасибо конечно, но я уже с БД подучился работать!


Сегодня сижу за компом... Из старой пластмассовой компьютерной колонки вылез паук, посмотрел по сторонам и обратно уполз в колонку... Первая мысль - Доктор Веб...обновления проверял...))
Я веду себя как положено, а положено у меня на все....
Жизнь нужно прожить так, чтобы было приятно вспомнить, но стыдно рассказать детям...
Пишу на С++ за еду...
Romantic вне форума Отправить личное сообщение для Romantic
Вверх
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.10
Copyright ©2000 - 2021, vBulletin Solutions, Inc. Перевод: zCarot

Время генерации страницы 0.10982 секунды с 13 запросами