2013-04-28 34 views
-2

我的第一個代碼如下。 請告訴我什麼問題 test.php的我用POST創建了一個腳本,它不起作用

<html> 
    <title>Speaker</title> 
    <body> 
    <form action="welcome.php" method="post" enctype="multipart/form-data"> 
     Name: <input type="text" name="name"> 
     Number: <input type="text" name="number"> 
     <input type="submit"> 

    </body> 
    </html> 

的welcome.php

<?php 
if(isset($_POST["number"])) 
{$_POST["number"]=$number;} 
if(isset($_POST["name"])) 
{$_POST["name"]= $name;} 
if($number<33) 
{echo "hello" "$name" "you have been failed" ; 
    } 
?> 

這個腳本是行不通的。請告訴我問題在哪裏。

+2

您的PHP代碼觸發解析錯誤。如果您看不到它,請在您的開發框中啓用錯誤報告。 – 2013-04-28 20:52:05

回答

4

您正在向後設置變量。它應該看起來像:

if(isset($_POST["number"])){ 
    $number = (int) $_POST["number"]; 
} 
if(isset($_POST["name"])){ 
    $name = $_POST["name"]; 
} 
if(isset($number) && $number<33){ 
    echo "hello {$name} you have been failed"; 
} 

我也建議使用更標準if/else風格就像我的例子,它是更容易閱讀在更大的語句。您的echo中也存在一個錯誤,您需要將字符串與.連接起來,或者使用大括號將該變量放在雙引號內。你會想檢查設置爲$number(如果它不在$_POST那麼它會在你的if語句中產生一個警告)。

最後,您要確保將輸入轉換爲正確的類型,並對它們進行消毒以防止SQL注入,跨站點腳本和其他攻擊(本例中未顯示)。

+0

非常感謝。它解決了我的問題。我是一個新的編程學習者。我有另一個問題和問題。在哪裏使用「」和在哪裏使用「」。我的意思是在哪裏使用雙引號和在哪裏使用單引號?請你簡單解釋一下。我搜查了很多東西,但不明白。 – supto 2013-04-28 20:54:35

+0

帶單引號的字符串將按字面解釋,但帶雙引號的字符串將評估變量。所以如果'$ var ='test';'然後'echo'$ var';'會給你「$ var」但是'echo「$ var」;'會給你「test」。你可以使用花括號來處理像echo一樣的情況{$ var} ing;;'echo'$ varing「;'會得到一個空字符串 - 它不能告訴哪個部分是變量。 – doublesharp 2013-04-28 20:56:28

1

你沒有設置你的變量,這就是爲什麼你無法打印。要設置任何變量,你應該首先聲明自己的可愛,然後給它一個值。所以應該

if(isset($_POST["number"])){ 
    $number = $_POST["number"]; 
} 
if(isset($_POST["name"])){ 
    $name = $_POST["name"]; 
} 
if($number<33) { 
    echo "hello".$name." you have been failed" ; 
} 
+0

@doublesharp得到了它,謝謝 – Fabio 2013-04-28 20:54:24

1

無論$編號或名稱$定義 我想你的意思是這樣:

if(isset($_POST["number"])) 
{$number=$_POST["number"];} 
if(isset($_POST["name"])) 
{$name=$_POST["name"];} 
0

嘗試......此外,檢查$number只有$_POST設置並不是空的......回聲也是錯誤的。

<?php 
    if(!empty($_POST)) 
     $number = $_POST["number"]; 
     $name = $_POST["name"]; 
     if($number<33) { 
      echo "hello $name you have been failed" ; 
     } 
    } 
?> 
+0

你仍然想做'$ number = isset($ _ POST [「number」])這個任務嗎? $ _POST [「number」]:0;'如果請求中沒有提交「number」。 – doublesharp 2013-04-28 20:59:48

+0

是@doublesharp ...你說得對 – 2013-04-28 21:30:31

相關問題