gpt4 book ai didi

php - 多部分表单数据不允许撇号?

转载 作者:可可西里 更新时间:2023-11-01 01:05:17 24 4
gpt4 key购买 nike

我正在使用以下表单代码:

<form enctype="multipart/form-data" action="process.php" method="POST">
<input type="text" name="draftTitle"/>
<textarea name="draftText" class="draftText"></textarea>
<input type="file" name="uploadfile"/>
<button class="draftSubmit">Add</button>
</form>

如您所见,表单包含文本和文件字段。当我在文本区域中提交带有撇号的表单时,什么也没有提交。在 process.php 中,我正在去除斜杠并正确清理 POST 数据,但问题似乎与 from enctype 有关。关于如何防止撇号弄乱语法的任何想法?

更新:这是表单的输出:

-----------------------------276443266232757\r\nContent-Disposition: form-data;
name="MAX_FILE_SIZE"\r\n\r\n4000000\r\n-----------------------------276443266232757\r\nContent-Disposition: form-data;
name="userID"\r\n\r\n2\r\n-----------------------------276443266232757\r\nContent-Disposition: form-data;
name="lineID"\r\n\r\n1\r\n-----------------------------276443266232757\r\nContent-Disposition: form-data;
name="draftTitle"\r\n\r\nThis is my title\r\n-----------------------------276443266232757\r\nContent-Disposition: form-data;
name="uploadfile";
filename=""\r\nContent-Type: application/octet-stream\r\n\r\n\r\n-----------------------------276443266232757\r\nContent-Disposition: form-data;
name="draftText"\r\n\r\nIt's my description with an apostrophe in it.\r\n-----------------------------276443266232757--\r\n

正如您将看到的,还有一些额外的字段。我在上面删除了它们以简化问题。

更新

我正在使用以下代码插入数据库。

$query = "INSERT INTO posts (line_id, user_id, stamp_title, element, type) VALUES ('$line_id', '$user_id', '$stamp_title', '$data', '$type')";
mysql_query($query);

已解决:我添加了 mysql_real_escape_string 并且它起作用了。感谢所有提供帮助的人!

$data = mysql_real_escape_string($data);

最佳答案

如果您提交的表单是:

-----------------------------276443266232757
Content-Disposition: form-data; name="MAX_FILE_SIZE"

4000000
-----------------------------276443266232757
Content-Disposition: form-data; name="userID"

2
-----------------------------276443266232757
Content-Disposition: form-data; name="lineID"

1
-----------------------------276443266232757
Content-Disposition: form-data; name="draftTitle"

This is my title
-----------------------------276443266232757
Content-Disposition: form-data; name="uploadfile"; filename=""
Content-Type: application/octet-stream


-----------------------------276443266232757
Content-Disposition: form-data; name="draftText"

It's my description with an apostrophe in it.
-----------------------------276443266232757--

这很好,你的撇号在那里。

但是,从这个到:

$query = "INSERT INTO posts (line_id, user_id, stamp_title, element, type) VALUES ('$line_id', '$user_id', '$stamp_title', '$data', '$type')";
mysql_query($query);

这似乎是问题所在,因为您在 SQL 插入中使用了撇号。你应该调用mysqli_real_escape_string()PDO::quote() (如果你有那个扩展)在你的每个输入变量上。

关于php - 多部分表单数据不允许撇号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12444429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com