未定义的索引错误消息

时间:2018-06-10 07:00:32

标签: php oop

我正在使用PHP制作一个Blogging CMS。所以这是我的代码:

listening <- l.Addr();

我收到了这个错误:

if(isset($_POST['insert_blog'])){
    $blog_id = uniqid('blog_post');
    $blog_author = $_POST['blog_author'];
    $blog_title = $_POST['blog_title'];
    $blog_body = $_POST['blog_body'];
    $blog_tags = $_POST['blog_tags'];
    $blog_category = $_POST['blog_category'];

    if($blog_title == '' OR $blog_body == ''  OR $blog_tags == ''){
        echo "
            <script>alert('Please fill all the fields!')</script>
            exit();
        ";
    }else{
        $insert_blog = "
            INSERT INTO `blogs` (`blog_id`,`blog_author`,`blog_title`,`blog_body`,`blog_category`,`blog_tags`,`date_posting`) 
            VALUES ('$blog_id','$blog_author','$blog_title','$blog_body','$blog_category','$blog_tags',NOW())
        ";
        $run_blog = mysqli_query($con2,$insert_blog);
        if($run_blog){
            echo "<META HTTP-EQUIV='Refresh' Content='0; URL=blognew-homepage.php?blog_id=$blog_id'>";
        }else{
            error_reporting(E_ALL);
            die(mysqli_error($con2));
        }
    }
}

这基本上从表单中获取此输入的值:

Undefined index: blog_author on line 5 

因此,您可以看到我已将<input class="form-control input-sm" type="text" disabled="disabled" name="blog_author" value="author: <?php echo $dataSet->GetUsername(); ?>"> 变量设置为类的方法,该方法只获取Admin的用户名。

其他变量由用户在表单中手动传递。

(因为他们工作正常,不需要在这里提及)

为什么我收到此错误消息?在这种形式中包含方法是错误的吗?如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您的输入为disabled,表示该输入的值不会显示在$_POST中。如果要使用disabled属性,可以重命名禁用的输入并添加具有正确名称/值的隐藏输入,如下所示:

<input class="form-control input-sm" type="text" disabled="disabled" name="blog_author_disabled" value="author: <?php echo $dataSet->GetUsername(); ?>">
<input type="hidden" name="blog_author" value="author: <?php echo $dataSet->GetUsername(); ?>">

或者您可以将disabled属性替换为readonly

<input class="form-control input-sm" type="text" readonly name="blog_author_disabled" value="author: <?php echo $dataSet->GetUsername(); ?>">

这样,该值将无法修改,但会显示在$_POST