【发布时间】:2022-09-25 14:51:06
【问题描述】:
为澄清而编辑:表单位于不同的页面 (page1.php) 上,并通过 POST 将信息发送到此页面 (page2.php)。它只是基本的 html 表单。我发现它可以很好地提交给数据库,除非我使用撇号或键入段落,然后按 Enter 在同一个框中键入第二个。
使用撇号会引发错误,说明语法错误。我已经确定它是因为它将输入作为 html 的一部分读取,因此句子中的撇号使它认为我正在结束一行代码。所以我不能使用撇号,就像我刚才在那个词(撇号)中所做的那样。至于段落问题,它根本不会将其保存到数据库中。它一起运行一切。我试图用 htmlspecialchars 转义撇号,如下面的代码所示,但它不起作用。我在这里做错了什么?
if ($_SERVER[\"REQUEST_METHOD\"]
== \"POST\") {
// collect value of input field
$ListName =
test_input($_POST[\'ListName\']);
$Task1 =
test_input($_POST[\'Task1\']);
$Task2 =
test_input($_POST[\'Task2\']);
$Task3 =
test_input($_POST[\'Task3\']);
$Task4 =
test_input($_POST[\'Task4\']);
$Task5 =
test_input($_POST[\'Task5\']);
$Task6 =
test_input($_POST[\'Task6\']);
$Task7 =
test_input($_POST[\'Task7\']);
$Task8 =
test_input($_POST[\'Task8\']);
$Task9 =
test_input($_POST[\'Task9\']);
$Task10 =
test_input($_POST[\'Task10\']);
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data =
htmlspecialchars($data);
return $data;
}
$sql = \"INSERT INTO
AutoPilotTaskLists (ListName,
Task1, Task2, Task3, Task4,
Task5, Task6, Task7, Task8,
Task9, Task10) VALUES
(\'$ListName\', \'$Task1\',
\'$Task2\', \'$Task3\', \'$Task4\',
\'$Task5\', \'$Task6\', \'$Task7\',
\'$Task8\', \'$Task9\',
\'$Task10\')\";
if ($conn->query($sql) ===
TRUE) {
echo \"New List Created\";
} else {
echo \"Error: \" . $sql . \"<br>\"
. $conn->error;
}
$conn->close();
?>
-
...然后您有另一个页面 URL 并将其用作
action属性(如 href),您的问题是什么? -
我只是进行了编辑以更好地解释它。
标签: forms syntax-error htmlspecialchars