Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Обработка html-форм
 
 автор: kyzma   (12.11.2007 в 21:25)   письмо автору
 
 

php-скрипт, обрабатывающий форму, проверяет введены ли данные в поля. Если нет, то выдаётся соответствующее предупреждение. В итоге уже при первой загрузке страницы выдаётся предупреждение, что поле не заполнено. Как сделать, что бы скрипт работал при нажатии на кнопку???

<table>
<form method=post>
<tr><td>Имя:</td><td><input type=text name=name maxlength=20></td></tr>
<tr><td>e-mail:</td><td><input type=text name=email maxlength=30></td></tr>
<tr><td></td><td><input type=submit value='ОК'></td></tr>
</form>
</table>


<?php  
    
//Проверяем, правильно ли заполнено поле
    
if (!empty($_POST['name']))
    {
        if (!
preg_match ("|^[-0-9A-zА-я_.]+$|i"$_POST['name'])) exit('Введены недопустимые символы в поле "Имя"');
    }
    else exit(
'Поле "Имя" не заполнено');
             .  .  .
             .  .  .
             .  .  .
?>



делал обработчик в отдельном файле..итог тот же

   
 
 автор: ddhvvn   (12.11.2007 в 22:15)   письмо автору
 
   для: kyzma   (12.11.2007 в 21:25)
 

Чушь какая-то! Замкнутый круг!
Хотя бы так:

<?php
if (!empty($_POST))
  if (!empty(
$_POST['name'])) 
    { 
        if (!
preg_match ("|^[-0-9A-zА-я_.]+$|i"$_POST['name'])) exit('Введены недопустимые символы в поле "Имя"'); 
    } 
    else exit(
'Поле "Имя" не заполнено');
?>

   
 
 автор: kyzma   (12.11.2007 в 23:01)   письмо автору
 
   для: ddhvvn   (12.11.2007 в 22:15)
 

ничего не изменилось(((

   
 
 автор: mefestofel   (13.11.2007 в 01:04)   письмо автору
 
   для: kyzma   (12.11.2007 в 21:25)
 

Во первых в форме не указан action, во вторых надо проверять массив $_POST в простом случае хотя бы count'ом, и на значения индексов, в случае если count>0...
Хотя в больших скриптах так не делается....

   
 
 автор: FINT   (13.11.2007 в 14:55)   письмо автору
 
   для: kyzma   (12.11.2007 в 21:25)
 

Смотри вот решение проблемы на твой запрос, я обычно делаю всё именно так, может и тебе поможет! Так вот, для начала я создам всё своё, свою форму и прочие, а ты попробуй разобраться, если возникнут проблемы, то пиши.
Создание формы:

// PHP Проверка , нажата ли кнопка или нет
<?php 
if(isset($_REQUEST['doSend']))
{
        
// Выводим то, что , если кнопка была нажата
}
else
{
       
// И просто если кнопка не была нажата
}
?>


//Это HTML форма 
<form action="#" method="post">
Имя : <input name="name" type="text" value="">
Фамилия : <input name="second_name" type="text" value="">
// Тут мы создаём кнопку и присваиваем ей имя doSend
<input name=doSend type="submit" value="Готово">
</form>



Вот и всё, думаю тут ничего сложного нет! Всего доброго

   
 
 автор: kyzma   (14.11.2007 в 15:07)   письмо автору
 
   для: FINT   (13.11.2007 в 14:55)
 

Большое вам спасибо!!! Всё заработало.
Скажите ещё пожалуйста, что значит в action значение "#"

action="#"

   
 
 автор: Faraon   (14.11.2007 в 15:17)   письмо автору
 
   для: kyzma   (14.11.2007 в 15:07)
 

action="#"
action=""
Вообще без action
Это в том случае если скрипт обращается сам к себе

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования