Прошу помощи в написании анкеты!

Фанат

oncle terrible
Команда форума
ну уж попробуй сам проверить заполнение обязательных полей.
 

maximius

Новичок
Я знаю, что я уже достал со своими вопросами.
Но проблема в том, что когда я запускаю страничку, то сразу на ящик падает пустая анкета. Почему?
Пробовал команды проверки такие:

PHP:
<?
   if (isset($_POST['name'], $_POST['mailfrom'])) {
     if ($_POST['name'] == '') {
       echo 'Укажите имя!<br>';
     } else if ($_POST['year'] < 1900 || $_POST['year'] > 2004) {
       echo 'Укажите год рождения! Допустимый диапазон значений: 1900..2004<br>';
     } else {
  mail('[email protected]', "=?windows-1251?B?".base64_encode($subject)."?=" , $body, 'Content-type: text/plain; charset=windows-1251' . "\r\n");  
     }
     echo '<hr>';
   }
 ?>
Где напортачил?
 

Фанат

oncle terrible
Команда форума
на поверхностный взгляд не видно. проверяй.
какое условие у тебя где выполняется.
вставить echo "проверка" несложно.
 

maximius

Новичок
А почему пустая анкета на ящик падает.
Как задать команду, чтобы анкета падала только по нажатию кнопки "Отправить"?
 

Kib

Новичок
mail('[email protected]', "=?windows-1251?B?".base64_encode($subject)."?=" , $body, 'Content-type: text/plain; charset=windows-1251' . "\r\n");
Что отправляем то и приходит, читай еще раз http://php5.ru/study/forms а с начала http://php5.ru/study/webbasics
 

maximius

Новичок
Здравствуйте. Это снова я.
Пересмотрел все статьи, которые вы мне давали, но проблема осталась. Как мне сделать условие обязательных полей для ввода и чтобы форма отправлялась только по нажатию на кнопку отправить. Привожу часть кода, где содержится сама форма и горе-программа PHP.


Где у меня ошибка и (если можно) пути ее решения.
Заранее спасибо!
 

TutanXamoN

Новичок
maximius
Форма код которой ты привёл не может отправляться просто при загрузке страницы без нажатия отправить за исключением случая когда $_POST['username'] не пуст на момент загрузки страницы.
Смотри что у тебя там содержится.
 

maximius

Новичок
а как же тогда нужно? Можете привести пример, или ссылку, где данный вопрос рассматривается.

Заранее спасибо.
 

Фанат

oncle terrible
Команда форума
1. правила читать нужно
2. если не работает большая программа - работаем с маленькой.
 

maximius

Новичок
Маленькая программа - это хорошо.
Но я даже не знаю от чего отталкиваться.
И про какие правила вы говорите?
 

Kib

Новичок
1 сделай вывод твоего сообщения через форму на страницу
2 сделай простую отправку почты без формы
3 замени строчку вывода в форме, строчкой отправки почты.

да и вот это незабываем
1. правила читать нужно
 

maximius

Новичок
Спасибо большое! Вот этого я и добивался. Всех с наступившим Новым 2009 Годом. Постораюсь разобраться.
 

Активист

Активист
Команда форума
[1c]
ЕСЛИ $_ПОСТ['КЛЮЧЬ'] ПУСТОЙ, ВЫВОДИМ ИНФОРМАЦИЮ, ЧТО ПОЛЕ НЕ ЗАПОЛНЕНО И ВЫВОДИМ ФОРМУ; ИНАЧЕ ОТСЫЛАЕМ ПИСЬМО
[/1c]

http://php.net/if
http://php.net/empty
 

maximius

Новичок
Активист, а что если условий несколько. С одним полем я допер. А что, если их 10?! Там форма немаленькая.

Единственное, что я понял - это как сделать, чтобы условия проверялись по нажатию кнопки: action - имя кнопки
...
if (!empty($HTTP_POST_VARS["action"]))
{\\проверка данных;}
...

Так?

-~{}~ 03.01.09 02:21:

И еще, а кусок php (echo) нужно вставлять перед формой, если надо, чтобы ошибка вылетала на странице выше формы или как-то особенно?

-~{}~ 03.01.09 02:28:

Автор оригинала: Safary
maximius, http://freshcoder.ru/archives/170 - это если ещё полностью не разобрался :)
Ничего я в этом примере не понял. Я хочу все написать без привлечения внешних файлов. Или это зря! Походу я вообще тупица в этом деле!!!!!!

И еще: я правильно обозначаю форму:

<form method="POST" action="<?=$_SERVER['PHP_SELF']?>">

или чего-то не хватает?

-~{}~ 03.01.09 02:32:

Автор оригинала: dimagolov
maximius, наверное надо смотреть на наличие $_POST['submit'], или у тебя другие идеи на этот счет?

вообще phpfaq.ru/na_tanke
А здесь параметр submit - это тип или имя?
 

Фанат

oncle terrible
Команда форума
С одним полем я допер. А что, если их 10?
значит, писать 10 условий.
нужно вставлять перед формой или как-то особенно?
если работает, то не надо искать "каких-то особенных" способов. если не работает - описывай, что именно не работает.

я правильно обозначаю форму:
или чего-то не хватает?
форма работает? если да, то откуда вопрос? если нет - описываем, что именно не работает.

А здесь параметр submit - это тип или имя?
тип поля на сервер не передается. передаются пары имя=значение.
 
Сверху