我有一个基于 PHP 和 SQL 的常见问题解答脚本,允许访问者通过表单提交问题。然后,站点管理员可以编辑问题、添加答案并将内容发布到 FAQ 页面。
除了编辑用户提交的问题外,一切正常。输入表单允许我编辑用户提交的问题并提交提供的答案,但提交后它返回原始用户提交的问题而不是编辑后的问题。
例如,用户提交以下问题:
“英格兰的首都是什么地方?”
管理员可以将问题编辑为:
“英国的首都是哪里?”
和答案:
“英国的首都是伦敦”
虽然在编辑和提交之后,编辑后的问题并没有保存到数据库中,而是保存为原始用户提交的问题:
“英国的首都是什么”
这是来自 editfaq.php 页面的代码,您可以在其中编辑用户提交的问题或存储在数据库中的现有问题和答案。编辑现有条目的问题或答案可以正常工作,但是用户提交的问题不会保存。
任何帮助将非常感激。
if (isset($_GET[type]) and $_GET[type] == n) {
$get_new = mysql_query("SELECT * FROM ofaq_new WHERE id = $_GET[id]");
while ($row = mysql_fetch_array($get_new)) {
$q = "$row[question]";
$email = "$row[email]";
$notify = "$row[notify]";
}
if (isset($_GET[edit])) {
mysql_query("INSERT INTO ofaq_qa (q, a) VALUES ('$q', '$_POST[a]')");
mysql_query("DELETE FROM ofaq_new WHERE id = $_GET[id]");
echo "$lang[publishednew].";
if ($notify == 1) {
$message = "$lang[mail1]\n\n$lang[question]: $q\n$lang[answer]: $_POST[a]\n\n$lang[mail2] $config[name] $lang[mail3]\n$config[faqurl]";
$message = wordwrap($message, 70);
$subject = "$lang[yourq] $config[name]";
$headers = "From: $config[name] <$config[adminmail]>";
mail($email, $subject, $message, $headers);
}
} elseif (isset($_GET[id])) {
echo "<b>edit user submitted question</b><p />";
echo "<form action=faqedit.php?type=n&edit=1&id=$_GET[id] method=post>";
echo "$lang[question]:<br />";
echo "<input type=text name=q size=50 value='$q' /><br />";
echo "$lang[answer]:<br />";
echo "<textarea name=a rows=4 cols=50></textarea><br />";
echo "<input type=submit value='$lang[pubnew]' />";
echo "</form>";
}
} else {
$get_qa = mysql_query("SELECT * FROM ofaq_qa WHERE id = $_GET[id]");
if (isset($_GET[id])) {
while ($row = mysql_fetch_array($get_qa)) {
$q = "$row[q]";
$a = "$row[a]";
}
echo "<b>edit existing question</b><p />";
echo "<form action=faqedit.php?edit=1&sid=$_GET[id] method=post>";
echo "$lang[question]:<br />";
echo "<input type=text name=q size=30 value='$q' /><br />";
echo "$lang[answer]:<br />";
echo "<textarea name=a rows=4 cols=30>$a</textarea><br />";
echo "<input type=submit value='$lang[editqa]' />";
echo "</form>";
} elseif (isset($_GET[edit])) {
mysql_query("UPDATE ofaq_qa set q='$_POST[q]', a='$_POST[a]' where id=$_GET[sid]");
echo "$lang[written]";
} else {
echo "Oops... Something went horribly wrong!";
}
}