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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: что не верно в коде?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: проверка заполнения полей формы
sasha
Отправлено: 19 Декабря, 2006 - 20:45:50
Post Id



Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Нояб. 2006  
Откуда: Москва


Помог: 0 раз(а)




Здравствуйте!
Хотелось бы подсказок.Почему не выполняется условие проверки полей форм на заполнение в коде.
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?php
  3.  
  4.  
  5. $email = "xvid@inbox.ru";
  6.  
  7.  
  8. $subj  = "привет!пришел заказ!";
  9.  
  10.  
  11. $ToEmail = $HTTP_POST_VARS['TOEMAIL'];
  12.  
  13. $headers = "Content-type: text/plain; charset=windows-1251 rn";
  14.  
  15. $msg = "форма обработана rn";
  16.  
  17. if(strlen($_POST['TOEMAIL[name]'])==0 || strlen( $_POST['TOEMAIL[adres]'])==0 || strlen( $_POST['TOEMAIL[email]'])==0 || strlen( $_POST['TOEMAIL[zakaz]'])==0)
  18. {
  19.    die("Ne vse polya zapolneny");
  20.  exit;
  21. }
  22. else
  23. {
  24.  exit;
  25. }
  26. foreach($ToEmail as $key=>$val) $msg .= "Поле ".htmlspecialchars($key).". Значение:
  27. ".htmlspecialchars($val)."rn";
  28.  
  29. mail($email, $subj, $msg, $headers);
  30.  
  31. if  ( !defined ( 'S_MOD' ) )  {
  32. echo "<meta http-equiv='refresh' content='0; url=/vopr1.htm'>";
  33. exit;
  34. }
  35. ?>
  36.  


Заранее благодарствую.
 
 Top
evgenijj
Отправлено: 19 Декабря, 2006 - 21:40:12
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if ( !isset( $_POST["action"] ) )
  4. {
  5.         // Если форма еще не заполнена
  6.         echo "<form name='shoporder' action='".$_SERVER["PHP_SELF"]."' method='POST'>";
  7.         echo "Name: <input type='text' name='toemail[name]' value=''/>";
  8.         echo "Address: <input type='text' name='toemail[adress]' value=''/>";
  9.         echo "Email: <input type='text' name='toemail[email]' value=''/>";
  10.         echo "Order: <input type='text' name='toemail[order]' value=''/>";
  11.         echo "<input type='hidden' name='action' value='action'/>";
  12.         echo "Order: <input type='submit' value='Go!'/>";
  13.         echo "</form>n";
  14. }
  15. else
  16. {
  17.         // Если форма заполнена
  18.         foreach ( $_POST["toemail"] as $value )
  19.         {
  20.                 if ( empty( $value ) ) die ("<p style='color:red'>Не все поля формы заполнены</p>");
  21.         }
  22.         // Все поля формы заполнены - продолжаем обработку заказа
  23.         foreach ( $_POST["toemail"] as $key => $value )
  24.         {
  25.                 $msg .= "Поле ".htmlspecialchars($key).". Значение:  ".htmlspecialchars($value)."rn";
  26.         }
  27.         mail($email, $subj, $msg, $headers);
  28. }
  29. ?>
  30.  

Все работает - проверил.
Мне непонятно, что это за условие: в любом случае exit() - завершение работы скрипта
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if(strlen($_POST['TOEMAIL[name]'])==0 || strlen( $_POST['TOEMAIL[adres]'])==0 || strlen( $_POST['TOEMAIL[email]'])==0 || strlen( $_POST['TOEMAIL[zakaz]'])==0)  
  4. {
  5.    die("Ne vse polya zapolneny");
  6.    exit;
  7. }
  8. else
  9. {
  10.    exit;
  11. }
  12. ?>
  13.  

Да, и проверка должна выглядеть так
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if( strlen($_POST["toemail"]["name"])==0 || strlen($_POST["toemail"]["address"])==0 || ... )
  4. ?>
  5.  
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB