2011-11-15 104 views
0

我有這樣的代碼:PHP和get方法錯誤

<?php 
if ($_GET["do"]=="success") { 
    echo "SUCCESS"; 
} 
?> 

<form action="file.php?do=success" method="post"> 
<input type="text"><input type="submit"> 
</form> 

而且我得到這個錯誤:

Notice: Undefined index: do in C:\Program Files\EasyPHP-5.3.8.1\www\m\file.php on line 2

什麼我需要做什麼?

+0

你可能想瞄了一眼[PHP的error_reporting(HTTP:/ /php.net/manual/en/function.error-reporting.php) – budwiser

+1

@budwiser:是不是已報告的錯誤?還是你建議壓制這些錯誤並假裝它從未發生過? :P – PeeHaa

+0

@budwiser鑑於OP看到了'E_NOTICE'錯誤,我想說他已經掌握了它 – Phil

回答

3

您需要檢查,如果該指數試圖訪問它之前存在:

<?php 
if (isset($_GET["do"]) && $_GET["do"] == "success") { 
    echo "SUCCESS"; 
} 
?> 

<form action="file.php?do=success" method="post"> 
<input type="text"><input type="submit"> 
</form> 
1

試試這個:

<?php 
if (!empty($_GET['do']) && $_GET["do"]=="success") { 
    echo "SUCCESS"; 
} 
?> 

<form action="file.php?do=success" method="get"> 
<input type="text"><input type="submit"> 
</form> 
+0

謝謝!!這是有幫助的 – gordon33

+0

@RobertasPalinskis使用isset()而不是empty()。 empty不檢查是否設置了該值,並在未設置的值上返回錯誤。 null不是「未設置」; –

+0

@UğurGümüşhan這是不正確的。 empty()確實測試了對象的存在。查看示例1A或在代碼中對其進行測試:http://php.net/manual/en/function.empty.php –