Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как сделать, чтобы скрип срабатывал по нажатию на кнопку?
Форумы портала PHP.SU » » Вопросы новичков » Как сделать, чтобы скрип срабатывал по нажатию на кнопку?

Страниц (1): [1]
 

1. etoYA - 22 Июля, 2011 - 16:46:44 - перейти к сообщению
Вот скрипт, мне нужно чтобы проверка выполнялась только после выполнения формы, а не сразу(при входе на страницу).

CODE (htmlphp):
скопировать код в буфер обмена
  1. <?
  2.         if ($login == '')
  3.                 echo 'Введите логин';
  4.         elseif ($pass == '')
  5.                 echo 'Введите пароль';
  6.         elseif ($email == '')
  7.                 echo 'Введите E-Mail';
  8.         elseif ($question == '')
  9.                 echo 'Введите секретный вопрос';
  10.         elseif ($answer == '')
  11.                 echo 'Введите ответ вопрос';
  12.         elseif ($pass != $repeat)
  13.                 echo 'Пароли не совпадают';
  14.  
  15. ?>
  16.  
  17. <form action="registration.php" name="reg" method="post">
  18. <table width="800" border="0" align="center">
  19.   <tr>
  20.     <td>Логин:    (Аккаунт менеджера. Выберите любой логин от 4 до 15 латинских букв и цирф)</td>
  21.     <td>
  22.         <div align="center">
  23.           <input name="login" type="text"maxlength="15" />
  24.         </div></td>
  25.   </tr>
  26.   <tr>
  27.     <td>Пароль:(Пароль должен состоять не менее чем из 4 латинских букв и цифр. Помните, что чем сложнее пароль, тем надежнее сохранность Вашего аккаунта)</td>
  28.     <td><div align="center">
  29.       <input name="pass" type="password" maxlength="15" />
  30.     </div></td>
  31.   </tr>
  32.   <tr>
  33.     <td>Повторите пароль:</td>
  34.     <td><div align="center">
  35.       <input name="repeat" type="password" maxlength="15" />
  36.     </div></td>
  37.   </tr>
  38.   <tr>
  39.     <td>Email:    (Введите действующий e-mail адрес. Помните, что при восстановлении забытого пароля именно на этот e-mail придет новый пароль)</td>
  40.     <td><div align="center">
  41.       <input name="email" type="text"/>
  42.     </div></td>
  43.   </tr>
  44.   <tr>
  45.     <td colspan="2">Выбирайте вопросы и ответы такие, чтобы Вам было легко их запомнить, а злоумышленникам тяжело подобрать. Помните, что изменить секретные вопросы и ответы нельзя. Если Вы забудете секретные ответы, восстановить пароль будет невозможно.</td>
  46.   </tr>
  47.   <tr>
  48.     <td>Секретный вопрос:</td>
  49.     <td><div align="center">
  50.       <input name="question" type="text"/>
  51.     </div></td>
  52.   </tr>
  53.     <tr>
  54.     <td>Ответ на вопрос:</td>
  55.     <td><div align="center">
  56.       <input name="answer" type="text"/>
  57.     </div></td>
  58.   </tr>
  59.   <tr>
  60.  
  61.     <td colspan="2"><div align="center">
  62.       <input type="submit" value="Зарегистрироватся">
  63.     </div></td>
  64.   </tr>
  65. </table>
  66. </form>
  67.  
  68.  
2. Kubert - 22 Июля, 2011 - 16:56:14 - перейти к сообщению
Это длительный процесс объяснения... Но суть такова..
1) Привести все ошибки (т.е. пустые значения в формах) к массиву.
2) После нажатия кнопки отправить пускаем цыкл этого массива и смотрим есть ли ошибка, т.е. на пустоту. Если есть то выводим сообщение...

или я тебя не правильно понял...!!!

Проверка на существование $_POST


Типа такого
if(isset($_POST['login'])){
...
}
3. etoYA - 22 Июля, 2011 - 16:59:31 - перейти к сообщению
Ну как я понял легче это будет с помощью $_SESSION?
4. Kubert - 22 Июля, 2011 - 17:01:11 - перейти к сообщению
etoYA пишет:
Ну как я понял легче это будет с помощью $_SESSION?


Не! Зачем геморой с сессией!

сделай проверкой на существание переменной какойнить $_POST выше написал
(Добавление)
И плюсани меня в конце концов! Радость
5. etoYA - 22 Июля, 2011 - 17:04:52 - перейти к сообщению
Да еще бы там плюсанул, но сообщений мало для этого Огорчение
6. Kubert - 22 Июля, 2011 - 17:09:56 - перейти к сообщению
так что сделал?
7. etoYA - 22 Июля, 2011 - 17:14:45 - перейти к сообщению
Да пока нет, ща буду пробовать, я только учусь)).
(Добавление)
Что-то я не понял, если не сложно напиши пример (на примерах легче учится). Не понял
(Добавление)
Хотя, сделаю 2мя файлами)))
8. maragon - 22 Июля, 2011 - 18:31:08 - перейти к сообщению
Замени в коде кнопку на:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <input type="submit" name="reg" value="Зарегистрироватся">


CODE (htmlphp):
скопировать код в буфер обмена
  1. <?
  2. if(isset($_POST['reg'])){
  3. if ($login == '')
  4.                echo 'Введите логин';
  5.        elseif ($pass == '')
  6.                echo 'Введите пароль';
  7.        elseif ($email == '')
  8.                echo 'Введите E-Mail';
  9.        elseif ($question == '')
  10.                echo 'Введите секретный вопрос';
  11.        elseif ($answer == '')
  12.                echo 'Введите ответ вопрос';
  13.        elseif ($pass != $repeat)
  14.                echo 'Пароли не совпадают';
  15. }
  16. ?>
Радость

 

Powered by ExBB FM 1.0 RC1