我有一个将一些数据提交到数据库的 PHP 表单。表单动作代码如下:
<form action="<?php echo $editFormAction; ?>"
method="post" name="form1" id="form1">
$editFormAction 引用了以下代码块:
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO gifts (giftid, customerid, itemtype, itemtitle, itemdescription, itemurl, dateadded, received, datereceived, vendor, ordernumber) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['giftid'], "int"),
GetSQLValueString($_POST['customerid'], "int"),
GetSQLValueString($_POST['itemtype'], "text"),
GetSQLValueString($_POST['itemtitle'], "text"),
GetSQLValueString($_POST['itemdescription'], "text"),
GetSQLValueString($_POST['itemurl'], "text"),
GetSQLValueString($_POST['dateadded'], "date"),
GetSQLValueString($_POST['received'], "text"),
GetSQLValueString($_POST['datereceived'], "date"),
GetSQLValueString($_POST['vendor'], "text"),
GetSQLValueString($_POST['ordernumber'], "text"));
mysql_select_db($database_testing_registryconnection, $testing_registryconnection);
$Result1 = mysql_query($insertSQL, $testing_registryconnection) or die(mysql_error());
$insertGoTo = "success.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
我在许多其他页面中使用了此代码的变体,但是对于这个特定的项目,虽然表单数据确实插入到 MySQL 数据库中,但表单页面只是重新加载以显示一个空白表单。如果我没记错的话,这个确切的代码在这个项目上工作了一段时间,但肯定有一些改变干扰了重定向到“success.php”。
关于我应该检查什么的任何提示?您需要查看更多代码吗?