PHP初始化变量

时间:2013-05-20 17:41:49

标签: php session post

我正在观看几个php教程,其中许多都是这样开始的:

<?php
 if(!$_POST['username']){
  ..
  ..
 };
?>

<?php
 $username = $_POST['username'];
  ..
  ..
?>

但每次我第一次访问该页面时,都会输出错误,因为$ _POST ['username']未初始化。 我该如何解决这个问题?

谢谢你

6 个答案:

答案 0 :(得分:1)

在向Web服务器发出请求时,可以使用四种主要的HTTP方法:GET,POST,DELETE和PUT。对于其中的每一个,您都可以使用PHP允许您访问的请求传递变量。对于GETPOST,您可以使用相应的数组访问变量:$_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