我正在观看几个php教程,其中许多都是这样开始的:
<?php
if(!$_POST['username']){
..
..
};
?>
或
<?php
$username = $_POST['username'];
..
..
?>
但每次我第一次访问该页面时,都会输出错误,因为$ _POST ['username']未初始化。 我该如何解决这个问题?
谢谢你
答案 0 :(得分:1)
在向Web服务器发出请求时,可以使用四种主要的HTTP方法:GET,POST,DELETE和PUT。对于其中的每一个,您都可以使用PHP允许您访问的请求传递变量。对于GET
和POST
,您可以使用相应的数组访问变量:$_GET
&amp;分别为$_POST
。
如果您之前从未处理过HTTP方法,那是因为您不需要真正考虑它。这是因为当您在浏览器中键入URL并点击go时,它默认使用GET
方法。
因此,在这种情况下,可能会发生的事情是,您在加载页面时根本没有提出POST
请求。即使你是,你也需要定义适当的POST
变量来访问它,在本例中它将是username
。
由于上述之一不正确,因此变量的值为null。当您尝试在PHP中访问空值时,脚本会抛出错误(如您所见)。你可以改变这个,但我不推荐它。我想知道在编写代码时我正在处理我的空变量。但也许那就是我。
我推荐的解决方案,以及其他人建议的解决方案是使用isset()
函数来查看变量是否已定义。这样可以防止您的代码破坏。 Check out the isset documentation for more.
答案 1 :(得分:0)
您可以将error_reporting
设置为E_ALL ~E_NOTICE
请参阅相关文档:http://php.net/manual/en/function.error-reporting.php
或在php.ini文件中全局禁用它。
答案 2 :(得分:0)
那是因为您没有通过POST
收到任何值(例如来自表单帖子)。像其他人建议的那样添加isset()
验证。看看http://php.net/manual/es/function.isset.php
答案 3 :(得分:0)
<?php
if(isset($_POST['username'])){
..
..
}
?>
答案 4 :(得分:0)
使用isset($_POST['username'])
if(isset($_POST['username']))
{
.
.
.
}
答案 5 :(得分:0)
$ _ POST ['username']正在尝试获取'username'变量,其中包含对您页面的POST http请求(想想提交表单)。正常浏览页面是一个http GET请求。
尝试使用它来避免问题:
<?php
if(isset($_POST['username'])) {
... if POST and includes a username value, do this ...
} else {
... otherwise do this stuff ...
}
请阅读我,了解有关HTTP请求类型的更多信息:http://techforum4u.com/content.php/229-HTTP-Request-GET-HEAD-POST-PUT-DELETE-OPTION-TRACE