2015-04-10 4 views
-3

Я могу сделать простой набор операторов IF, чтобы определить, является ли число либо составным, либо простым (хотя я думаю, что функция будет лучше подходит).Использование PHP post для простого простого номера программы

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

Здесь нет синтаксических ошибок, только ошибочная логика. Проблема в том, где ошибка?

Спасибо за любой совет.

<form> 
<form name="PrimeCalculator" method="post" action=""> 
<input type="text" name="input"> Enter any number to see if it's a Prime or Composite<br /> 
<input type="submit" name="submit" value="Calculate"> 
</form> 

<?PHP 
if($_POST['submit'] == "Calculate"){ 
    $num=$_POST["input"]; 
    for ($i = 2; $i <= $num-1; $i++) { 
     if ($num % $i == 0) { 
     $value= True; 
     } 
} 
if ($value) { 
    echo 'The Number '. $num . ' Is A Composite'; 
} else { 
    echo 'The Number '. $num . ' Is A Prime'; 
    } 
} 
?> 
+0

try $ value = false; перед первым, если – dbinns66

+0

Вы уверены, что значения правильно передаются вашему PHP-коду через POST? Попробуйте var_dump ($ _ POST), может быть? – Maximus2012

+0

Возможно, вам лучше использовать функцию, чтобы проверять, будет ли значение prime, которое возвращает true или false. Ваш код будет намного более чистым и легче понять. Попробуйте следующее: http://stackoverflow.com/questions/16763322/a-formula-to-find-prime-numbers-in-a-loop – Maximus2012

ответ

2

Ваша ошибка на самом деле в HTML, удалить первый <form> тег и он должен работать, если ваш код бросает

E_NOTICE : type 8 -- Undefined variable: value -- at line 14 

при входе в простое число, как $ значение не задано, то ,

Вы можете использовать

if (isset($value) && $value) 

для проверки вместо этого.

<form name="PrimeCalculator" method="post" action=""> 
<input type="text" name="input"> Enter any number to see if it's a Prime or Composite<br /> 
<input type="submit" name="submit" value="Calculate"> 
</form> 
+0

Ах .. это работает - спасибо! Я не могу принять ваш ответ до 5 минут. Не могли бы вы объяснить, почему исходный тег мешал работе кода - мне нужно убедиться, что я не делаю такую ​​же ошибку дважды. – MissDizy

+0

, потому что вы отправляете пустую форму - первая открыта. – baao

+0

@MissDizy у вас не может быть 2

тегов. – Maximus2012

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