2 回答
TA贡献1785条经验 获得超8个赞
功能上没有什么问题isset
。这甚至不是 PHP 相关的问题。
这都是关于表单提交编码的。表单有 3 种有效的编码类型:
application/x-www-form-urlencoded
(默认)multipart/form-data
text/plain
您正在使用第三个,其记录如下:
使用该
text/plain
格式的有效负载旨在便于人类阅读。它们无法被计算机可靠地解释,因为格式不明确(例如,无法区分值中的文字换行符和值末尾的换行符)。
您没有获得任何POST
变量,因为 PHP$_POST
在使用enctype="text/plain"
.
在 superglobal的文档中$_POST
:
application/x-www-form-urlencoded
当使用或multipart/form-data
作为请求中的 HTTP Content-Type时,通过 HTTP POST 方法传递到当前脚本的变量的关联数组。
话虽如此,您仍然可以从请求正文中读取原始数据。
$data = file_get_contents('php://input');
但您将获得字符串(纯文本)形式的整个数据。
最后但并非最不重要的一点是,要小心,php://input
不适用于enctype="multipart/form-data"
.
TA贡献1829条经验 获得超4个赞
isset($_POST['submit'])
如果表单上有多个提交按钮,则不要使用引用提交按钮,因为该按钮并不总是被按下。这在过去给我带来了问题。
在任何字段上按 Enter 键将提交表单,并且第一个提交按钮可用。
使用其中一个字段。在你的情况下你可以使用if (isset($_POST['name'])){
- 2 回答
- 0 关注
- 126 浏览
添加回答
举报