2017-02-11 130 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

<形式方法= 「POST」 行動= 「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

我得到未定義的符號錯誤不在 $ numb = $ _ POST ['text']; 我在嘗試訪問時遇到錯誤。請參考我上面的完整代碼。 – Harry

+0

是的,爲了獲得$ _POST ['text']的值,你需要檢查是否設置了$ _POST ['text'] .. if(isset($ _ POST ['submit']))'this will always return假 – mandar

相關問題