gpt4 book ai didi

PHP $_GET 和 $_POST 未定义问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:51:20 25 4
gpt4 key购买 nike

我是 PHP 的新手,所以如果这是一个简单的问题,我深表歉意...

我正在将 PHP 站点从一台服务器移动到另一台服务器。新服务器是 IIS 7.0,PHP 5.2.1,带有短的开放标签“打开”,我不知道原来的服务器是如何设置的(我只是得到了代码)。

以下是其中一个页面上的代码的第一部分:

<?
ob_start();
session_start();

if($_GET['confirm'] == 13 || $_GET['confirm'] == 14 || $_GET['confirm'] == 15 || $_GET['confirm'] == 16)
{
include("test/query/test_query.php");
}
?>

执行此页面时,总是显示以下错误:

PHP Notice: Undefined index: confirm in [file location].php on line 6

此外,用户通过从主页(这是一个标准的 HTML 页面)重定向来访问该页面。正确导航到的完整 URL 如下:

http://www.[site].com/test.php#login

...我明白为什么会抛出错误。我不明白的是这段代码怎么能像在原始服务器上那样工作。我可能缺少配置设置吗?

*同样的问题发生在整个站点的数十个位置。这只是该问题的一个特定事件。

最佳答案

新服务器有error_reporting设置为 E_ALL。您看到的是通知,而不是错误。尝试:

error_reporting(E_ALL ^ E_NOTICE)

将错误报告设置为 E_ALL,访问未设置的数组成员会产生错误。如果您不想降低错误报告级别,请在检查 $_GET['var'] 之前将您的代码更改为:

if(isset($_GET['confirm']) && ($_GET['confirm'] == 13 || $_GET['confirm'] == 14 || $_GET['confirm'] == 15 || $_GET['confirm'] == 16)) {

通过在您实际访问 $_GET['confirm'] 之前添加对 isset() 的调用,您将验证您没有访问未设置的数组成员。 ($_GET['confirm'] 仅当 URL 以 ?confirm=...?something...&confirm=.. .)

关于PHP $_GET 和 $_POST 未定义问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1359240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com