调用htmlspecialchars时未定义的索引

时间:2015-10-12 10:10:50

标签: php htmlspecialchars

我收到以下错误:

Notice: Undefined index: test

参考这一行:

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

我是否需要在某处定义test,即使我尝试从网址读取它?

-

- 编辑 -

在发布此内容之前,我实际上已查看链接为重复的答案,但无法查看与使用htmlspecialchars相关的任何内容,我认为这会导致问题。

6 个答案:

答案 0 :(得分:2)

您的变量不存在。使用isset来检查

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

答案 1 :(得分:2)

您必须在脚本运行之前使用以下行启用错误报告

4313

然后在使用php

中的isset()函数之前检查变量是否存在
server {
    listen 80;
    server_name 127.0.0.1 localhost;
    location = /index.html {
            root /etc/nginx/html/app1;
            index index.html;
    }

    location / {
            root /etc/nginx/html/app1;
            index index.html;
    }

    location /common/ {
            root /etc/nginx/html/common;
    }
}

答案 2 :(得分:1)

$_GET["test"]应用htmlspecialchars之前检查null是否存在。如果未设置$_GET["test"],则会将令牌值设置为$token = isset($_GET["test"]) ? htmlspecialchars($_GET["test"]) : null;

name

答案 3 :(得分:1)

您没有在GET请求中提供测试变量,因此它显示此错误。 尝试使用Gravy建议的代码。虽然如果在URL中没有收到测试,这将使令牌为null。 IF令牌是接收它们的强制性要求,您可以执行类似

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

答案 4 :(得分:1)

正如你所提到的,要从网址上阅读..它并不保证你的页面是通过get获取的,也可能是post ..要同时使用

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

答案 5 :(得分:1)

$ token = htmlspecialchars(@ $ _ GET [“test”]);

使用@忽略通知错误