Php 多部分表单数据不存在';你不允许撇号吗?

Php 多部分表单数据不存在';你不允许撇号吗?,php,forms,Php,Forms,我正在使用以下表单代码: <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"/&g

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

<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>
正如您将看到的,还有一些额外的字段。为了简化问题,我删除了上面的内容

更新

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

$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\u real\u escape\u字符串,它成功了。感谢所有帮助过我的人

$data = mysql_real_escape_string($data);

我的观察是,这不是PHP的问题,而是用于将值放入数据库或文件的其余代码的问题。请把代码也贴出来


我假设您正在向MySql数据库插入值。为了帮助您完成此操作,您可以在插入之前尝试使用函数为mysql做准备。

如果您提交的表单是:

-----------------------------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插入中使用了撇号。您应该在每个输入变量上调用or(如果有扩展名)。

我注意到您的表单中没有任何提交控件。您是如何提交表单的?我复制了HTML并将其放入一个测试文件中,将其指向一个php脚本,该脚本只打印所有POST参数,到处都提交了撇号,一切都正常。@HernanVelasquez我通过按“回车”提交了表单当焦点在第一个文本字段中时。对不起,是的,它有一个提交按钮,我只是忘记在上面添加它…刚刚编辑它…你确定没有发送任何内容吗?您是否已检查Firebug或类似文件以查看实际发送到服务器的内容?$query=“插入帖子(行id、用户id、戳记标题、元素、类型)值(“$行id”、“用户id”、“戳记标题”、“数据”、“类型”)”;mysql\u查询($query);试试这个-$name=mysql\u real\u escape\u字符串($post['draftText']),然后形成查询。你还应该尝试使用fiddler或类似的实用程序检查实际发布的值。
$query = "INSERT INTO posts (line_id, user_id, stamp_title, element, type) VALUES ('$line_id', '$user_id', '$stamp_title', '$data', '$type')";
mysql_query($query);