【发布时间】:2025-12-21 04:10:10
【问题描述】:
我的旧网站刚刚迁移到新服务器(新 PHP 平台)。
当 URL 显示:http://url.com/page.php?num=9
这曾经有效:
if($num == "9")
echo "hello";
?>
自该网站建成以来的这千年间发生了什么变化?
【问题讨论】:
-
查询字符串值在
$_GET数组中。以$_GET['num']为例。
我的旧网站刚刚迁移到新服务器(新 PHP 平台)。
当 URL 显示:http://url.com/page.php?num=9
这曾经有效:
if($num == "9")
echo "hello";
?>
自该网站建成以来的这千年间发生了什么变化?
【问题讨论】:
$_GET数组中。以$_GET['num'] 为例。
在这种情况下,您需要使用这种方式获取变量
$number = $_GET["num"];
然后你可以继续
if($number=="9") {
echo "hello";
}
【讨论】:
改变的是:
$_GET、$_POST 等)PHP 4.2 - register_globals 默认设置从 ON 更改为 OFF
PHP 5.3 - 注册全局变量已弃用
注册全局变量允许您自动将$num 放在 URL 中。我链接的 PHP 文档中有一些关于删除该功能的各种(好的)原因的讨论。一个好的 TL/DR(来自该文档)可能是:
当启用时,register_globals 将向您的脚本注入各种变量,例如来自 HTML 表单的请求变量。再加上 PHP 不需要变量初始化这一事实意味着编写不安全的代码要容易得多。
正如其他答案所示,现在获取它的方法是使用$_GET['num'],但如果您的代码依赖于寄存器全局变量,则可能还有其他内容需要更新。
【讨论】:
$_GET['your_url_parameter_name_here']
在您的实例中使用以下代码
if($_GET['num'] == "9")
echo "hello";
【讨论】:
您可以像这样从url 获得values:
网址:http://example.com/page.php?num=9
$_GET['num'];
要检查它是否已设置,您只需执行以下操作:
if(isset($_GET['num'])){
//return true
}
或者以你为例,如果它是 9
if($_GET['num'] == "9"){
echo "It's 9";
}
在manual 中了解$_GET
【讨论】: