调用 htmlspecialchars 时未定义的索引
Undefined index when calling htmlspecialchars
我收到以下错误:
Notice: Undefined index: test
参考这一行:
$token = htmlspecialchars($_GET["test"]);
我是否需要在某处定义 test
,即使我试图从 URL 读取它?
-
-编辑-
我实际上在发布此链接之前查看了作为重复链接的答案,但在其中看不到任何与使用 htmlspecialchars
有关的内容,我认为这是导致问题的原因。
在应用 htmlspecialchars
之前检查 $_GET["test"]
是否存在。如果未设置 $_GET["test"]
,这会将令牌值设置为 null
。
$token = isset($_GET["test"]) ? htmlspecialchars($_GET["test"]) : null;
您的变量不存在。使用isset检查这个
if(isset($_GET["test"]))
$token = htmlspecialchars($_GET["test"]);
else
echo "variable test doesn't exist";
您必须在脚本运行前使用以下行启用错误报告
error_reporting(E_ALL);
然后使用php
中的isset()函数在使用前检查变量是否存在
isset($_GET["test"])
您没有在 GET 请求中提供测试变量,因此显示此错误。
尝试使用 Gravy 建议的代码。如果在 URL 中没有收到测试,这将使令牌为空。
如果令牌是接收它们的强制性要求,您可以执行类似
的操作
if(isset($_GET['test'])) {
$token = htmlspecialchars($_GET["test"]);
}else{
// do stuff when you dont get test. Return or output error etc.
}
正如您所提到的,要从 url 读取。不能保证您的页面是通过 get 请求的,它可能是 post .. 要同时使用
$token = htmlspecialchars($_REQUEST["test"]);
$token = htmlspecialchars(@$_GET["test"]);
使用@忽略通知错误
我收到以下错误:
Notice: Undefined index: test
参考这一行:
$token = htmlspecialchars($_GET["test"]);
我是否需要在某处定义 test
,即使我试图从 URL 读取它?
-
-编辑-
我实际上在发布此链接之前查看了作为重复链接的答案,但在其中看不到任何与使用 htmlspecialchars
有关的内容,我认为这是导致问题的原因。
在应用 htmlspecialchars
之前检查 $_GET["test"]
是否存在。如果未设置 $_GET["test"]
,这会将令牌值设置为 null
。
$token = isset($_GET["test"]) ? htmlspecialchars($_GET["test"]) : null;
您的变量不存在。使用isset检查这个
if(isset($_GET["test"]))
$token = htmlspecialchars($_GET["test"]);
else
echo "variable test doesn't exist";
您必须在脚本运行前使用以下行启用错误报告
error_reporting(E_ALL);
然后使用php
中的isset()函数在使用前检查变量是否存在isset($_GET["test"])
您没有在 GET 请求中提供测试变量,因此显示此错误。 尝试使用 Gravy 建议的代码。如果在 URL 中没有收到测试,这将使令牌为空。 如果令牌是接收它们的强制性要求,您可以执行类似
的操作if(isset($_GET['test'])) {
$token = htmlspecialchars($_GET["test"]);
}else{
// do stuff when you dont get test. Return or output error etc.
}
正如您所提到的,要从 url 读取。不能保证您的页面是通过 get 请求的,它可能是 post .. 要同时使用
$token = htmlspecialchars($_REQUEST["test"]);
$token = htmlspecialchars(@$_GET["test"]);
使用@忽略通知错误