2016-10-19 2 views
1

Я пытаюсь выполнить простую проверку значения из формы, и я хочу назначить некоторые переменные значениям, введенным пользователем. Я сделал эту форму:PHP уведомление об индексированном индексе только перед отправкой формы

<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST"> 
       <label for="raspuns1"><span class="glyphicon glyphicon-pencil"></span> Raspuns subpunct a</label> 
       <input type="text" class="form-control" name="raspuns1" placeholder="Raspuns a"><br> 
       <label for="raspuns2"><span class="glyphicon glyphicon-pencil"></span> Raspuns subpunct b</label> 
       <input type="text" class="form-control" name="raspuns2" placeholder="Raspuns b"><br> 
       <label for="raspuns3"><span class="glyphicon glyphicon-pencil"></span> Raspuns subpunct c</label> 
       <input type="text" class="form-control" name="raspuns3" placeholder="Raspuns c"><br> 
       <label for="raspuns4"><span class="glyphicon glyphicon-pencil"></span> Raspuns subpunct d</label> 
       <input type="text" class="form-control" name="raspuns4" placeholder="Raspuns d"><br> 
       <button type="submit" class="btn btn-success glyphicon glyphicon-check"> Verifica răspunsurile</button> 
    </form> 

и это код PHP

<?php 
$corect1="raspunsulcorect"; 
$corect2="raspunsulcorect"; 
$corect3="raspunsulcorect"; 
$corect4="raspunsulcorect"; 

if(isset($_POST['submit'])) 
{ 
$raspuns1=$_POST['raspuns1']; 
$raspuns2=$_POST['raspuns2']; 
$raspuns3=$_POST['raspuns3']; 
$raspuns4=$_POST['raspuns4']; 
} 

?> 

Проблема заключается в том, что при открытии страницы, он показывает мне

Notice: Undefined index: raspuns1 in A:\XAMPP\htdocs\Copie\Teste\test1-geometrie.php on line 5 

Notice: Undefined index: raspuns2 in A:\XAMPP\htdocs\Copie\Teste\test1-geometrie.php on line 6 

Notice: Undefined index: raspuns3 in A:\XAMPP\htdocs\Copie\Teste\test1-geometrie.php on line 7 

Notice: Undefined index: raspuns4 in A:\XAMPP\htdocs\Copie\Teste\test1-geometrie.php on line 8 

После нажатия кнопку отправки, все в порядке, но если страница открывается в первый раз, это будет показано. Что я делаю не так? Это первое, если не должно позволить программе проверять переменные

+0

Ваш код и номера строк не совпадают ... – jeroen

+0

Я знаю, номера, отображаемые в уведомлении, не имеют таких имен, как raspuns1 и т. Д. – MCM

ответ

0

Вперед и добавьте метод, который проверяет, является ли это POST-запрос перед доступом к суперглобальному $ _POST.

Пример:

function isPost() { 
    return strtolower($_SERVER['REQUEST_METHOD']) == 'post'; 
} 

В своем коде (если вы определили выше функции):

if(isPost() && isset($_POST['submit'])) 
{ 
$raspuns1=$_POST['raspuns1']; 
$raspuns2=$_POST['raspuns2']; 
$raspuns3=$_POST['raspuns3']; 
$raspuns4=$_POST['raspuns4']; 
} 

Также проверьте filter_input и filter_var функции при выборке значений из $ _GET и $ _POST Суперглобальные.

+0

Я пробовал функцию isPost. Это все еще показывает мне те же ошибки. – MCM

+0

Итак, вы все еще видите уведомления даже с запросом GET? – Andreas

+0

Да. Проблема заключается в том, что он указывает Undefined index raspuns1 в строке 5, но в строке 5 у меня нет такой переменной – MCM

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