gpt4 book ai didi

php $_GET 和 undefined index

转载 作者:IT王子 更新时间:2023-10-29 00:54:28 25 4
gpt4 key购买 nike

当我试图在不同的 PHP 服务器上运行我的脚本时,我遇到了一个新问题。

在我的旧服务器上,以下代码似乎可以正常工作 - 即使没有声明 s 参数。

<?php
if ($_GET['s'] == 'jwshxnsyllabus')
echo "<body onload=\"loadSyllabi('syllabus', '../syllabi/jwshxnporsyllabus.xml', '../bibliographies/jwshxnbibliography_')\">";
if ($_GET['s'] == 'aquinas')
echo "<body onload=\"loadSyllabi('syllabus', '../syllabi/AquinasSyllabus.xml')\">";
if ($_GET['s'] == 'POP2')
echo "<body onload=\"loadSyllabi('POP2')\">";
elseif ($_GET['s'] == null)
echo "<body>"
?>

但是现在,在我的本地机器(XAMPP - Apache)上的本地服务器上,当没有定义 s 的值时,我收到以下错误。

Notice: Undefined index: s in C:\xampp\htdocs\teaching\index.php on line 43
Notice: Undefined index: s in C:\xampp\htdocs\teaching\index.php on line 45
Notice: Undefined index: s in C:\xampp\htdocs\teaching\index.php on line 47
Notice: Undefined index: s in C:\xampp\htdocs\teaching\index.php on line 49

如果为 s 声明了值,我希望脚本调用某些 javascript 函数,但如果没有声明任何内容,我希望页面正常加载。

你能帮帮我吗?

最佳答案

错误报告将不包括之前服务器上的通知,这就是您没有看到错误的原因。

您应该检查索引是否为 s实际上存在于$_GET数组,然后再尝试使用它。

像这样就足够了:

if (isset($_GET['s'])) {
if ($_GET['s'] == 'jwshxnsyllabus')
echo "<body onload=\"loadSyllabi('syllabus', '../syllabi/jwshxnporsyllabus.xml', '../bibliographies/jwshxnbibliography_')\">";
else if ($_GET['s'] == 'aquinas')
echo "<body onload=\"loadSyllabi('syllabus', '../syllabi/AquinasSyllabus.xml')\">";
else if ($_GET['s'] == 'POP2')
echo "<body onload=\"loadSyllabi('POP2')\">";
} else {
echo "<body>";
}

使用 switch 可能会有所帮助(如果您计划添加更多案例)语句使您的代码更具可读性。

switch ((isset($_GET['s']) ? $_GET['s'] : '')) {
case 'jwshxnsyllabus':
echo "<body onload=\"loadSyllabi('syllabus', '../syllabi/jwshxnporsyllabus.xml', '../bibliographies/jwshxnbibliography_')\">";
break;
case 'aquinas':
echo "<body onload=\"loadSyllabi('syllabus', '../syllabi/AquinasSyllabus.xml')\">";
break;
case 'POP2':
echo "<body onload=\"loadSyllabi('POP2')\">";
break;
default:
echo "<body>";
break;
}

编辑:顺便说一句,我编写的第一组代码完整地模仿了您的意图。 ?s= 中意外值的预期结果意味着输出没有 <body>标记还是这是一个疏忽?请注意,该开关将始终默认为 <body> 来解决此问题.

关于php $_GET 和 undefined index ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7876868/

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