我的php编码有些困难。
我有3个文件,add.php,lib.php和view.php
我创建了一个简单的表单,当用户单击“提交”时,它应该将它们定向到view.php,它将显示数据库。现在我遇到了一些我似乎无法解决的问题。
当用户单击“提交”并且字段为空或出现错误时,不应在视图页面(或数据库)中输入任何内容...但是,当我单击“提交”时,将在数据库中输入空白条目。此外,如果我单击顶部菜单栏中的“输入产品”,则会导致数据库中出现空白条目。我无法弄清楚为什么会这样。
我的下一个问题是标题('位置') 我的浏览器说:
“警告:无法修改标题信息 - 已在第16行的add.php中发送的标题(在lib.php:13处开始输出)”
但是,如果我点击表单上的提交,它就会消失。
以下是页面的代码:
如果代码真的很乱,我真的很抱歉。
非常感谢任何帮助/建议/解决方案。谢谢。
是的,这是一项任务 - 它已于上周到期,但由于我无法完成,所以不再值得任何分数了。
答案 0 :(得分:1)
您的if
语句if (empty($_POST)){
将始终失败,else
将运行,因此空数据库条目将会运行。
$_POST
将始终包含一些内容,即使对于空文本输入也是如此。每个键都将设置为空字符串。
要测试是否应保存数据,您需要验证所有必需的表单字段。您的代码可能看起来像这样。这绝不是完整或安全的,但它会指向正确的方向。
<?php
// store validation rules for required fields
$requiredFields = array(...);
// Store all validation errors here.
$errors = array();
foreach($requiredFields as $key=>$rule) {
if(empty($_POST[$key])) {
$errors[$key] = true;
}
else {
// you can perform more validation work on the value here.
}
}
if(count($errors) > 0) {
// form submit failure.
}
else {
// form submit success, save to db
}
答案 1 :(得分:0)
您在设置标头之前发送输出,因此不会发送指定的标头。