我确定我写得很糟糕。我有一个简单的表单,您输入位,将信息发送到进程页面并在数据库的表中插入一行。我的问题是插入部分工作正常。但是我显示了页面内的模板类或其他任何内容。只是一个空白页面。它让我疯狂。
功能
Public function UpdateReason($reason, $bundlereference) {
error_reporting(E_ALL ^ E_NOTICE);
$db_selected = mysql_select_db(DB_DATABASE_NAME, $this->conn);
if (!$db_selected) {
die("Can't use db : " . mysql_error());
}
$_reason = mysql_real_escape_string($reason,$this->conn);
$_bundlereference = mysql_real_escape_string($bundlereference,$this->conn);
$sql = "UPDATE `ArchiveBundle`
SET `Issue` = '" . $_reason . "'
WHERE `BundleReference` = '" . $_bundlereference . "'";
mysql_query($sql, $this->conn);
die(mysql_error());
exit;
}
表格
<table>
<form method='post' action='addissue.php'>
<p>Reason: <input type='text' name='reason' /></p><br/>
<p><input type='hidden' name='bundlereference' id='Username'
value='" . $x['Reference'] . "' /></p>
<input type='submit' name ='add'/>
</form>
</table>
流程页
<?php
// First of all initialise the user and check for permissions
require_once "/var/www/users/user.php";
$user = new CHUser(2);
// Initialise the template
require_once "/var/www/template/template.php";
$template = new CHTemplate();
// And create a cid object
require_once "/var/www/Testing/DisplayWIPOnLocation.php";
$BundleProgress= new CHWIPProgress();
$reason = $_POST['reason'];
$reference = $_POST['bundlereference'];
$issue = $BundleProgress->UpdateReason($_POST['reason'],$_POST['bundlereference']);
Print "Your information has been successfully added to the database.";
$template->SetTag("content", $content);
echo $template->Display();
?>
我也想知道/了解php中表单的最佳实践
答案 0 :(得分:6)
您未获得输出的原因如下两行。这会杀死你的脚本。只需删除这些。
die(mysql_error());
exit;
总的来说,这并不可怕。您正在使用对象,并且在插入数据库之前您正在清理用户输入。我有几点建议。
die()
。正确处理错误和异常。print "Your information has been added..."
行吗?$reason
和$reference
,然后传递$_POST
中的值,生成那些未使用的变量。也许这仅仅是因为测试代码?