2015-10-21 5 views
0

Вот моя простая форма:Undefined индекс в Зенда

<form action = "input" method = "POST"> 
Name: <input type="text" name="uname"/> <br> 
<input type="submit" name="button" value="hit it" > 
</form> 

Вот мой контроллер:

public function indexaction() 
{ 
    $db= new DataBase(); 
    $db->initDB("testform", "benjaminsform"); 
    $con=mysqli_connect("localhost","root","","benjaminsform"); 
    if($_SERVER["REQUEST_METHOD"]=="POST"){ 
     if(isset($_POST["button"])) { 
      $uname=$_POST['uname']; 
     } 
     $success=$db->insert(array("name"=>$uname)); 
    } 

    return array(); 
} 

И это им ошибка приема»

Примечание: Не определено variable: uname в /usr/local/zend/var/apps/http/v-hrswebapps/80/benjamintestapp/1.0.0_201/module/Application/src/Application/Controller/IndexController.php в строке 27

Линия 27 - это утверждение $ success.

Ive пробовал работать с моими инструкциями isset, но на самом деле ничего не происходит в массиве.

+0

Zend Framework представляет собой приложение framework, это означает, что вы не должны сами проверять переменные '$ _SERVER', вместо этого вы полагаетесь на классы обработки форм и проверки. – Oerd

ответ

1

Вы можете сделать это, чтобы получить почтовые данные

public function indexaction() 
{ 
    $request = $this->getRequest(); 
    if ($request->isPost()){ 
     $params = $request->getPost(); 
     $uname = $params['uname']; 
    } 
} 

Но, похоже, ваше действие вводится, но ваш код под indexaction, поэтому он не получает свой POSTDATA