注意:未定义索引$ _POST和mysql

时间:2014-09-23 07:09:26

标签: php

如果我设置

$USER = (isset($_POST['username']));

用php在db put' 1'中有0个错误 BUT 而是用户在HTML输入上写的,如果我把

`$USER = $_POST['username'];`

Notice: Undefined index: username in __FILE__ on line 5

这在db中设置了什么用户放入HTML输入,但得到错误

(抱歉我的英语不好;我知道这太糟了!)

3 个答案:

答案 0 :(得分:3)

请尝试以下方法: -

if (isset($_POST['username'])) {
  $USER = $_POST['username']);
}

As,isset()是一个以布尔值给出返回值的函数,即; 1或0

答案 1 :(得分:1)

执行此操作时:

$USER = (isset($_POST['username']));

您检查是否设置了$_POST['username']并将此结果(true或false)设置为$USER

您想要做的是:

if (isset($_POST['username'])) // You check if username is set.
{
     $USER = $_POST['username'];
     // your query
}
else
{
    // return error if isn't set.
}

答案 2 :(得分:1)

首先,isset()是一个检查操作数类型,如果为真则返回1,如果为假则返回0,具体取决于是否存在。我想你得到了为什么这总是输出并在数据库中保存1。

所以它应该是$USER = $_POST['username'];

但是你得到Notice: Undefined index: username in __FILE__ on line 5的原因是因为当你第一次进入那个页面时,它不会发布任何内容。事实上,当时PHP不知道$_POST['username']。当您提交表单时,php将知道并识别$_POST['username']

所以你需要检查如下:

if(isset($_POST['username'])){
  echo $_POST['username'];
}

希望它会起作用并让你理解这个问题。

问候。