我有一个带有textarea的简单表单,它只是获取内容并将其存储在数据库中。可以输入所有种类的文本,包括HTML,但不会出现以下异常:
and selecting Sign Up from the main menu.
该行文本会产生URI(在这种情况下,它类似于以下内容):
index.php?pg=create
简单地重写:
?pg=create
世界上POST数据如何操纵URL?在某些情况下,输入上面完全相同的文本行将导致重定向到网站上完全不同的网页。为什么结果不一致?
我尝试删除任何抓取POST值的代码来存储它们,并且会遇到相同的结果,但只有在输入上面的文本行时才会这样。 (无论是手动粘贴还是键入。)
我之前从未遇到过如此奇怪的问题,非常感谢任何帮助。
注意:系统运行的是CentOS,Apache,MySQL,PHP - 该网站是一个在子目录中运行的应用程序,该站点的根目录是Wordpress。另外:我的测试服务器几乎相同,运行相同的代码,但操作系统是Ubuntu,我还没有在测试服务器上遇到过这个问题。
我应该补充一点是,我正在使用准备好的陈述。 (看到提到的文字看起来可以在MySQL中执行)
以下是发布到的页面代码:
if (isset($_POST['submit_add_customer_note'])) {
$num_special_notes = number_of_customer_notes($current_user_id);
$valid_limit = false;
if ($num_special_notes < MAX_LIMIT_SPECIAL_NOTES) {
$valid_limit = true;
}
if ($valid_limit) {
if ($_POST['special_note'] != '' && $_POST['special_note_desc'] != '') {
$special_note = substr(trim($_POST['special_note']), 0, 5000);
$special_note_desc = substr(trim($_POST['special_note_desc']), 0, 100);
if (insert_new_customer_note($current_user_id, $special_note, $special_note_desc)) {
header('Location: index.php?pg=manage_customer_notes&status=success');
exit;
} else {
echo DB_ERROR;
}
} else {
header('Location: index.php?pg=add_customer_note&status=not-filled-out');
exit;
}
} else {
header('Location: index.php?pg=manage_customer_notes&status=limit-reached');
exit;
}
}
以下是insert_new_customer_note的代码:
function insert_new_customer_note($u_id, $special_note, $special_note_desc) {
$db = new mysql_conn();
$stmt = $db->prepare("INSERT INTO customer_special_notes (user_id, description, message)
VALUES(?, ?, ?)");
$stmt->bind_param('iss', $u_id, $special_note_desc, $special_note);
if (!$stmt->execute()) return false;
$stmt->close();
$db->close();
return true;
}
提前致谢!