2014-02-06 6 views
1

Я сделал этот простой php, чтобы проверить, является ли число положительным или отрицательным. Он работает, но я получаю это уведомление: Неопределенный индекс: submit.Неопределенный индекс: отправить

<?php 
if (!$_POST["submit"]) 
    { 
    ?> 
    <body> 
     <form action="<?=$_SERVER['PHP_SELF']?>" method="post"> 
      Enter a number: <input name="number" size="2"> 
      <input type="submit" name="submit" value="Go"> 
     </form> 
    </body> 
    <?php 
} 
else 
{ 
    $number = $_POST['number']; 
    if ($number > 0) 
    { 
     echo 'You entered a positive number'; 
    } 
    elseif ($number < 0) 
    { 
     echo 'You entered a negative number'; 
    } 
    else 
    { 
     echo 'You entered 0'; 
    } 
} 
?> 

Im нового в PHP, так что если вы можете и хотите :)

+0

При первой загрузке страницы не будет никаких значений в 'значений $ _POST'. $ _POST будет заполняться только при отправке вашей формы. –

ответ

0

Изменить ваше состояние

if (!isset($_POST["submit"])) 
1

Вы должны заменить вторую линию:

if (!isset($_POST['submit'])) { 
0

Заменить

if (!$_POST["submit"]) 

с

if (isset($_GET['submit'])) 
1

Ваш $_POST["submit"] выглядит пустым. Он будет инвертирован благодаря! и выводить true, поэтому ваша программа работает.

Но вы никогда не отправляете какое-либо значение с именем submit, его название кнопки. Я думаю, вы хотите проверить, пусто ли $_POST["number"].

if (!empty($_POST["number"])) { 
    //your stuff here. 
0

Заменить вторую строку:

if (!$_POST['submit']) 

с:

if (!isset($_POST['submit'])) 
+0

Это более или менее повторение [этого существующего ответа] (https://stackoverflow.com/a/21599105). – Pang

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