Неопределенное сообщение об ошибке индекса - PullRequest
0 голосов
/ 10 июня 2018

Я работаю с PHP, чтобы создать CMS для блогов.Итак, вот мой код:

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(); ?>">

Итак, как вы можете видеть, я установил переменную $dataSet для метода класса, который просто получает имя пользователя Admin.

И другие переменные, переданные пользователем вручную в форме.

(поскольку они работают нормально, нет необходимости упоминать их здесь)

Так почему я получаю это сообщение об ошибке?Это неправильно, чтобы включить метод в этой форме?Как решить эту проблему?

1 Ответ

0 голосов
/ 10 июня 2018

Ваш ввод 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...