将PHP从7.4更新到8.1 -致命错误:未捕获错误:未定义常数“id”[重复]

fzwojiic  于 2023-05-16  发布在  PHP
关注(0)|答案(1)|浏览(197)

此问题已在此处有答案

What does the PHP error message "Notice: Use of undefined constant" mean?(2个答案)
4天前关闭。
鉴于我更新了PHP 7.4到8.1
当我查看网页前门-例如/index.php?ID=3
然后我得到了一个致命的错误:
未捕获错误:Undefined constant“id”in/index.php:75堆栈跟踪:#0 {main} thrown in/index.php on line 75
出现错误的原因是index.php文件中的以下遗留代码:
第七十五行:

<? 
$id = $_GET[id];
if (!isset($id)) {
    include ("files/news.txt");
} else {
    if ($id==1) {
        include ("files/news1.txt");
    } elseif ($id==2) {
        include ("files/news2.txt");
    } elseif ($id==3) {
        include ("files/news3.txt");
        echo "";
    }
}

我将非常感谢关于如何更改遗留代码以使其与PHP 8.1一起工作的建议。
谢谢你

ttcibm8c

ttcibm8c1#

在将$_GET赋值给变量之前,请确保检查它是否存在。

$id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
if ($id === 0) {
    include ("files/news.txt");
} else {
    include ("files/news$id.txt");
}

您也可以在一行中执行代码

include ("files/news" . (isset($_GET['id']) ? (int)$_GET['id'] : "") . ".txt");

相关问题