Автор Тема: Обработка формы  (Прочитано 2671 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ajr

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 17
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.fcrubin.h1.ru
Обработка формы
« : 10 Июня 2002, 21:08:39 »
Есть форма, куда юзер заносит имя, email и ряд других данных.
Всё это записывается в текстовый файл в следующем виде:

юзер1  em@ail  2  3  1  4  2   и т. д. ряд цифр
юзер2  em@ail  5  1  0  .........и т.д.
юзер3 .......
.
.
Как сделать, чтобы юзер не мог дважды ввести одно и то же имя, т.е. чтобы после нажатия "Submit" проверялось совпадение вносимого имени с именами в текстовом файле...
Кто-нибудь подскажет?

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Обработка формы
« Ответ #1 : 10 Июня 2002, 21:44:36 »
Считывай файл построчно и сравнивай имеющиеся именя с введенными.
AS IS...

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Обработка формы
« Ответ #2 : 10 Июня 2002, 22:35:33 »
ну, построчно будет медленно.
я бы сдитывал весь в одну переменную (fread) и искал в ней через strstr:
if (strstr($file,"\\n".$name." ")) echo "already registered!";

Оффлайн ajr

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 17
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.fcrubin.h1.ru
Обработка формы
« Ответ #3 : 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

  • Универсал
  • Старожил
  • ****
  • Сообщений: 456
  • +0/-0
  • 2
    • Просмотр профиля
    • http://myphp.dem.ru
Обработка формы
« Ответ #4 : 11 Июня 2002, 09:53:14 »
Цитировать
if (strstr($f_name,$contents))

Поменяй местами параметры, т.е.
if (strstr($contents, $f_name))
После трех дней без программирования жизнь становится бессмысленной.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28