这是我第一次在真实的项目环境中使用PHP。该项目非常简单,使用现有的,有效的PHP站点并更新HTML以与HTML5保持一致。在设计HTML之后,我将从之前的站点插入PHP。这大部分时间都有效,但我收到了一些错误。例如:
<?
$sec = $_GET['sec'];
if ($sec == "1") {
echo ('Success!');
}
?>
导致错误:
注意:Undefined index: sec in /file_that_holds_site_build.
当然,只有当url不包含警告消息的append标记(= 1)时才会这样。
所以问题是这个问题,当我没有$GET
时,我错过了什么导致$sec
?如何在首页加载时消除此错误?
答案 0 :(得分:1)
您正在收到通知,因为您正在尝试访问某些情况下不存在的数组索引。以下是您应该如何从请求中获取数据。
$sec = array_key_exists('sec', $_GET) ? $_GET['sec'] : null;
答案 1 :(得分:1)
感谢所有为此问题提供可能答案的人。丹尼尔想出了最简单的修复方法。再一次,我只是调整其他人的代码来工作,所以一个普遍的解决将涉及我自己的写作太多。至此,最终代码如下所示:
<?
if (isset($_GET["sec"])){
$sec = $_GET['sec'];
if ($sec == "1") {
echo ('Success! Your username and password have been sent via email.');
}}
?>
注意添加的if语句。正如我在对丹尼尔的评论中所说的那样,简单!
再次感谢大家的帮助。我希望尽快为你服务。
答案 2 :(得分:0)
在php代码中使用之前,只需使用isset($_GET['sec'])
检查参数'sec'
即可。这应该消除错误。我认为这非常简单。
答案 3 :(得分:-1)
我经常只是extract()
wohle $_GET
超级全局,然后获得所需的变量。作为一种“声明”,我首先使用false
初始化每个预期变量。通过这种方式,我发现它比单独执行if(isset($_GET['element'])) ...
$var1=$var2=$var3=false; // my desired variables
extract($_GET); // everything I get from the form
// or: extract($_REQUEST);
if ($var1) { /* do something with it */ }
可能存在安全风险:
当然你应该知道每个人都可以简单地将自己的变量作为参数包含在他的页面中......