Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > вывод ошибок при не заполненой форме


Автор: supervladislav 17.6.2007, 21:26
друзья у меня такая задача.Мне нужно ,чтоб при подаче формы  если нужная форма незаполнена выводилось информация ниже этой формы о том что данная форма обязательна для заполнения.
Я пробовал это реализовать так как показано ниже,но проблема в том ,что сообщения о незаполненых формах выпадают  до того как я отправляю данные блин ,можно какнить реализовать енто средствами  php а не джава скрипт.
Код

<body leftmargin="0px" marginheight="0px" marginwidth="0px" rightmargin="0px" >
<table width="90%" border="1" cellspacing="0" cellpadding="0" align="center" height="90%" bgcolor="#C8EFFE">
  <tr align="center">
    <td align="center" colspan="2"><img src="logo.jpg"  width="900" height="300" border="0" align="center"></td>
  </tr>
  <tr align="center">
    <td width="15%" valign="top"><a href="index.html" title="нажмите для перехода на главную">на главную</a>
    <a href="obr.html" title="наше оборудование">оборудование</a>
    <a href="price.html" title="прейскурант на наши услуги">прейскурант</a>
    <a href="zakaz.html" title="тут вы можите оформить заказ on-line">стол заказов</a>
    <a href="vopros.php" title="тут вы можите получить ответы на ваши вопросы">задайте вопрос</a>
    </td>
    <td width="85%" align=center><br><font size="+3">задайте свой вопрос</font><br><p>
<div style="text-indent:5px;text-align:justify;background-color:#4c88a1;font-family:Arial, Helvetica, sans-serif;font-size:12px;width:80%;">
Пожалуйста заполните форму ниже.Обязательно заполните поля для связи:<b>Телефон</b>&nbsp;&nbsp;,<b>имя</b>&nbsp;и&nbsp;<b>фамилию</b>&nbsp;
</div>
    <table align="center" cellpadding="0px" cellspacing="6px" border="0" width="46%" height="70%">
    <tr>
    <td class="i1" nowrap="nowrap"><hr size=1 width=100%>ваше имя:</td>
    <td align="right"><form action="<? $_SERVER['PHP_SELF'];?>" method="post"><br><input type="text" name="name1" size="25" >
    <?php
if(isset($_POST['name1'])!=""){echo('<style="text-align:center;color:red;">надо заполнить поле имя</p>');}
      ?>

    </td>
</tr>
<tr>
    <td class="i1" valign="center" nowrap="nowrap"><hr size=1 width=100%>ваше фамилия:</td>
    <td valign="center"><br><input type="text" name="name2" size="25" ></td>



</tr>
<tr>
    <td class="i1" valign="center" nowrap="nowrap"><hr size=1 width=100%>ваше отчество:</td>
    <td valign="center"><br><input type="text" name="name3" size="25" ></td>

</tr>
<tr>
    <td class="i1" valign="center" nowrap="nowrap"><hr size=1 width=100%>ваш емайл:</td>
    <td valign="center"><br><input type="text" name="name4" size="25"><?php

    if(isset($_POST['name4'])!=""){echo('<style="text-align:center;color:red;">надо заполнить поле мыло</p>');}
      ?></td>

</tr>
<tr>
    <td class="i1" valign="center" nowrap="nowrap"><hr size=1 width=100%>номер вашего icq:</td>
    <td valign="center"><br><input type="text" name="name5" size="25" >
    <?php


      ?>

    </td>
</tr>
<tr>
    <td class="i1" valign="center" nowrap="nowrap"><hr size=1 width=100%><br><br>номер вашего контактного телефона:</td>
    <td valign="center"><br><br><input type="text" name="name6" size="25" ><?php

    if(isset($_POST["name6"])){echo('<style="text-align:center;color:red;">надо заполнить номер вашего контактного телефона</p>');}
      ?></td>
</tr>

    <tr>
    <td class="i1" valign="center"><hr size=1 width=95%><br><br>ваш вопрос:<br><br><br><br><br><hr size=1 width=100%></td>
    <td valign="center"><br><textarea name="name7" cols="30" rows="6" ></textarea><br><br>
    <?php

    if($_POST["name7"]==""){echo('<style="text-align:center;color:red;">пожалуйста заполните поле вопрос</p>');}
     mail("angels_fall_first@rambler.ru","вам задан вопрос по оцифровке",$vse); ?>
    </td>
</tr>
<tr align="center">
<td valign=center  colspan="2"><br><input type="submit" value="отправить" style="text-align:center"><input type="reset" value="обнулить" style="text-align:center"></form></td></tr>

    </table>

</table>
<br><br>
<table width=100% height=5% cellpadding="0px" cellspacing="0px" border="0" bgcolor="#afe4fa" valign=left height="10%">
<tr>
<td><p style=";text-align:center;background-color:#0e8fc5;font-weight:bolder;font-family:Arial, Helvetica, sans-serif;font-size:16px;">copiright by vlad 2007&copy;</p></td>
</tr>
</table>
</body>
</html>
<?php
 if(isset($_POST['name1']) && isset($_POST['name1'])!="" && isset($_POST['name2']) && isset($_POST['name2'])!="" && isset($_POST['name3']) && isset($_POST['name4']) && isset($_POST['name4'])!="" && isset($_POST['name5']) && isset($_POST['name5'])!="" && isset($_POST['name6']) && isset($_POST['name6'])!="" && isset($_POST['name7']) && isset($_POST['name7'])!="")
{$vse.="ИМЯ:".$_POST['name1']."\n";
$vse.="ФАМИЛИЯ:".$_POST['name2']."\n";
$vse.="ОТЧЕСТВО:".$_POST['name3']."\n";
$vse.="МЫЛО:".$_POST['name4']."\n";
$vse.="АСЬКА:".$_POST['name5']."\n";
$vse.="МЫЛО:".$_POST['name6']."\n";
$vse.="сообщение:".$_POST['name7']."\n";
mail("angels_fall_first@rambler.ru","вопрос по оцифровке",$vse);
}
else{exit();}




  ?>
  

Автор: SelenIT 17.6.2007, 23:11
Во-первых, часть проверок просто неправильные - isset возвращает true или false, и неравенство пустой строке выполняется как раз в случае true, т.е. если поле заполнено. Правильно в данном случае, имхо, будет проверять метод обращения к странице и пустоту соответствующих POST-переменных:
Код

if ( ($_SERVER['REQUEST_METHOD'] == 'POST') && empty($_POST['name1'])) {
   echo('<p style="text-align:center;color:red;">Надо заполнить поле &laquo;Имя&raquo;</p>');
}

Тогда ошибки будут выводиться исключительно в том случае, если страница - результат обработки POST-формы, а не первый вывод ее по обычному GET-запросу.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)