2017-02-11 9 views
0

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

неопределенный символ $ онемели

(пытаюсь сохранить мой ввод текста в $numb).

<html> 
<body> 
    <?php 
     if (isset($_POST['submit'])) $numb=$_POST['text']; 

     if($numb<1) { 
      echo "Number < 1"; 
     } 
     else if (100<$numb) { 
      echo "Number > 100"; 
     } 
     else if($numb==2) { 
      echo "Prime"; 
     } 
     else if($numb%2==0) { 
      echo "Not prime"; 
     } 
     else { 
      $flag=0; 
     } 

     for($count=3;$count<sqrt($numb);$count=$count+2) { 
      if($num%$count==0) { 
       $flag=1; 
      } 
      break; 
     } 
     if($flag==0) { 
      echo "Not Prime"; 
     } 
     else { 
      echo "Prime"; 
     } 
    ?> 
    <form method="post" action="main.php"> 
     <input type="text" name="text"> <input type="submit" value="Submit" name="submit"> 
    </form> 
</body> 
+0

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

+0

да <форма метод = "пост" действие = "main.php"> <входной тип = "текст" название = "Текст"> <входной тип = "отправить" значение = "Отправить" имя = "Отправить"> – Harry

+0

Я получаю сообщение об ошибке с указанием $ онемели не определено в строке {$ онемела = $ _ POST [ 'текст']; } – Harry

ответ

0

Я попробовал ваш код. Проблема началась здесь:

if (isset($_POST['submit'])) $numb=$_POST['text']; 

Если переменная $_POST['submit'] не установлена, переменная $numb не инициализирован. Поэтому, используя его после (то есть оператор if($numb<1)), результатом будет Undefined variable: numb.

Аналогичная проблема с $flag.

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

<html> 
<body> 
<?php 

if (isset($_REQUEST['text'])) { 
    $numb=$_REQUEST['text']; 

    $flag=0; // initialize $flag to prevent error 
    if($numb<1) { 
    echo "Number < 1"; 
    } else if (100<$numb) { 
    echo "Number > 100"; 
    } else if($numb==2) { 
    echo "Prime"; 
    } else if($numb%2==0) { 
    echo "Not Prime"; 
    } else { 
    for($count=3;$count<sqrt($numb);$count=$count+2) { 
     if($numb%$count==0) { 
     $flag=1; 
     break; 
     } 
    } 
    if($flag==1) { 
     echo "Not Prime"; 
    } else { 
     echo "Prime"; 
    } 
    } 
} 

?> 
<form method="post" action="main.php"> 
    <input type="text" name="text"> <input type="submit" value="Submit" name="submit"> 
</form> 
</body> 
</html> 
+0

Вы можете проверить число, простое или нет? Я не получаю никакого эха или чего-то еще. – Harry

+0

Вы отправили форму? –

+0

есть. Пожалуйста, помогите мне с кодом, который даст мне результат, который я ищу. То есть, если я введу число в поле и нажмите «Отправить», он должен вернуть, является ли число простым или нет. Я проверяю число от 1 до 100 – Harry

0

Независимо от того, какие элементы ввода, упоминаемые вами в вашей форме, отправляются на сервер (php в вашем случае) в виде пары ключ-значение. Если атрибут имени вашего тега ввода становится тегом ключа и значения вашего входного элемента, становится значением.

<?php 

    if(isset($_POST['submit'])) // this will always return false. there is no input named submit in your form 
    { 

     $numb=$_POST['text']; //this will never get initialized, $numb will be always undefined 

    } 

?> 

Это правильный способ проверить

<?php 

    if(isset($_POST['text'])) 
    { 

     $numb=$_POST['text']; 

    } 

?> 

это должно работать

+0

Я получаю undefined ошибку символа не на $ numb = $ _ POST ['text']; Я получаю ошибку, когда пытаюсь получить к ней доступ. Пожалуйста, верните мой полный код выше. – Harry

+0

yes для получения значения $ _POST ['text'] вам нужно проверить, установлен ли $ _POST ['text']. 'If (isset ($ _ POST ['submit']))' это всегда будет возвращено false – mandar