Forum Webscript.Ru

Программирование => PHP => Тема начата: ajr от 10 Июня 2002, 21:08:39

Название: Обработка формы
Отправлено: ajr от 10 Июня 2002, 21:08:39
Есть форма, куда юзер заносит имя, email и ряд других данных.
Всё это записывается в текстовый файл в следующем виде:

юзер1  em@ail  2  3  1  4  2   и т. д. ряд цифр
юзер2  em@ail  5  1  0  .........и т.д.
юзер3 .......
.
.
Как сделать, чтобы юзер не мог дважды ввести одно и то же имя, т.е. чтобы после нажатия "Submit" проверялось совпадение вносимого имени с именами в текстовом файле...
Кто-нибудь подскажет?
Название: Обработка формы
Отправлено: ThE0ReTiC от 10 Июня 2002, 21:44:36
Считывай файл построчно и сравнивай имеющиеся именя с введенными.
Название: Обработка формы
Отправлено: Меняздесьдавнонет от 10 Июня 2002, 22:35:33
ну, построчно будет медленно.
я бы сдитывал весь в одну переменную (fread) и искал в ней через strstr:
if (strstr($file,"\\n".$name." ")) echo "already registered!";
Название: Обработка формы
Отправлено: ajr от 11 Июня 2002, 06:43:52
RomikChef, strstr или strpos ?
 В РНР-файле есть такая функция:

function HandleForm () {
/*Функция обработки данных из формы.*/
global $f_name;
 global $Array;
   if (!$Array["f_name"]) {
   print ("

Введите имя!

"); }
   else
 $CallFunction = WriteToFile ($Array["f_name"], $Array["email"], $Array["a1"], $Array["a2"],  $Array["a3"],$Array["a4"], $Array["a5"],  $Array["a6"],$Array["a7"], $Array["a8"],  $Array["a9"], $Array["b1"], $Array["b2"], $Array["b3"], $Array["b4"], $Array["b5"], $Array["b6"], $Array["b7"], $Array["b8"], $Array["b9"]);

 if ($CallFunction) {
 print ("


$Array[f_name], Ваш прогноз принят!


\\n");
 } else {
 print ("

Ваш прогноз не принят!


\\n");
    }
   }
 // Конец функции HandleForm.

Я так понимаю,что в неё надо вставить что-то типа:
$filename = "data.txt";
$fd = fopen ($filename, "r");
$contents = fread ($fd, filesize ($filename));
if (strstr($f_name,$contents))
 echo "Это имя уже введено!";
fclose ($fd);
В таком виде это не работает. Что я не правильно делаю?
Куда и как это вставить, подскажите подробнее, а то я уже запарился с этой проблемой...
Название: Обработка формы
Отправлено: GotZfild от 11 Июня 2002, 09:53:14
Цитировать
if (strstr($f_name,$contents))

Поменяй местами параметры, т.е.
if (strstr($contents, $f_name))