2015-10-12 127 views
-1

時,我收到以下錯誤未定義指數:呼籲用htmlspecialchars

Notice: Undefined index: test 

參照這一行:

$token = htmlspecialchars($_GET["test"]); 

我需要定義test的地方,即使我想從URL中讀取它?

-

CNC中

我其實看鏈接爲發佈此之前重複的答案,但無法看到與使用htmlspecialchars,我認爲是導致該問題的任何事情。

+1

嘗試輸出'var_dump($ _ GET)'並查看是否存在「test」鍵。如果在直接使用前進行'isset'檢查會很不錯 – Kamehameha

+0

[PHP:「注意:未定義的變量」和「注意:未定義的索引」]的可能重複(http://stackoverflow.com/questions/ 4261133/php-notice-undefined-variable-and-notice-undefined-index) – Epodax

回答

2

您的變量不存在。使用isset檢查此

if(isset($_GET["test"])) 
    $token = htmlspecialchars($_GET["test"]); 
else 
    echo "variable test doesn't exist"; 
+0

所有信息性答案都在這裏,但我使用了這一個,它的工作原理將盡可能快地接受這個答案。謝謝。 – Robert

1

在應用htmlspecialchars之前檢查$_GET["test"]是否存在。如果$_GET["test"]未設置,則將令牌值設置爲null

$token = isset($_GET["test"]) ? htmlspecialchars($_GET["test"]) : null; 
+0

在試圖對不存在的東西執行操作之前,它檢查是否設置了'$ _GET [「test」]''。 – Gravy

2

您必須啓用錯誤通過使用下面的行腳本之前上報上運行

error_reporting(E_ALL); 

然後檢查你使用isset使用前的變量存在()函數在php

isset($_GET["test"]) 
1

您沒有在GET請求中提供測試變量,因此它顯示此錯誤。 嘗試使用Gravy建議的代碼。儘管如果在URL中未收到測試,這會使標記爲空。 IF令牌將被接收他們的強制性要求,你可以這樣做

if(isset($_GET['test'])) { 
    $token = htmlspecialchars($_GET["test"]); 
}else{ 
    // do stuff when you dont get test. Return or output error etc. 
} 
1

正如你提到的,從網址讀取。它不能保證你頁面被請求打通,,它可能是post ..要同時使用

$token = htmlspecialchars($_REQUEST["test"]); 
1

$ token = htmlspecialchars(@ $ _ GET [「test」]);

使用@忽略通知錯誤

+1

你應該很少(如果有的話)忽略錯誤/通知,而應該處理它。 – Epodax