2014-01-14 2 views
0

Я создал небольшой валидатор формы с PHP и с некоторыми проблемами с ним. MY VIEW FILE здесь:Простой валидатор на PHP не работает

<form action="" method="post"> 
<?php if(isset($status)) : ?> 
    <p class="notice"><?php echo $status; ?> </p> 
    <?php endif; ?> 

     <ul> 
      <li> 
       <label for="name">Your Name : </label> 
       <input type="text" name="name"> 
      </li> 

      <li> 
       <label for="email">Your Email : </label> 
       <input type="text" name="email"> 
      </li> 

      <li> 
       <input type="submit" value="Sign Up"> 
      </li> 
     </ul> 



    </form> 

и вот мой маленький контроллер:

<?php 
require 'index.tmpl.php'; 

if ($_SERVER['REQUEST_METHOD'] == "POST") { 
    $name = trim($_POST['name']); 
    $email = trim($_POST['email']); 

    if (empty($name) || empty($email)) { 
     $status = "Please provide a name and a valid email address"; 
    } 

    echo $name; 

} 

?> 

Теперь то, что происходит в том, что, когда я открываю страницу и оставить поля формы пустыми и представить его, его просто перезагружает, не отгоняет ничего.

+1

Вы используете рамки, возможно, переменные не получают передаются зрения одно- на одной? – jeroen

+0

добавьте имя фрейма ..... –

+0

Распечатайте переменную '$ status'. –

ответ

1

<form action="" указывает на место, где будет отправлена ​​форма. Если пустым, он возвращает форму обратно себе.

<form action="yourLittleController.php" method="POST"> 

Отредактировано с более подробной информации:

в PHP, пост не POST. Пример здесь: https://eval.in/89002

убедитесь, что вы

method="POST"> 

и не

method="POST"> 
+0

Да, но я требую его в файле контроллера –

+0

@NihalSahu См. Мой отредактированный ответ. –

1

Вы хотите повторить $ статус, а не $ имя.

+0

Ничего не повторится, так как «POST»! = «Post» –

1

Как насчет перемещения линии require до уровня if?

<?php 

if ($_SERVER['REQUEST_METHOD'] == "POST") { 
    $name = trim($_POST['name']); 
    $email = trim($_POST['email']); 

    if (empty($name) || empty($email)) { 
     $status = "Please provide a name and a valid email address"; 
    } 

    echo $name; 
} 

require 'index.tmpl.php'; 

?> 
+0

Спасибо, Это сработало отлично. –

0

вы должны указать свое второе имя файла в атрибуте действия формы вашего просмотра файлов в как действие = «controller.php»

Смежные вопросы