我正在使用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的用户名。
其他变量由用户在表单中手动传递。
(因为他们工作正常,不需要在这里提及)
为什么我收到此错误消息?在这种形式中包含方法是错误的吗?如何解决这个问题?
答案 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
。