无法以HTML格式发布简单的表单数据

时间:2016-10-01 作者:avirajkhare00

我创建了一个简单的联系我表单,并希望将表单数据发布到PHP页面,在该页面中存储数据。

我无法确定在何处上载create\\u表单。php文件。打击是我的准则。

<form name="customer-details" method="POST" onsubmit="return  formValidation() action="contact_form.php">
  <fieldset>
<legend>Personal information:</legend>
Name:*<br>
<input type="text" id="name" name="name" placeholder="Your Name"><br>
Company Name:<br>
<input type="text" id="company" name="company" placeholder="Your company Name"><br>
Email Address*:<br>
<input type="email" id="email" name="email" placeholder="Your Email Address"><br>
Interested in:<br>
<input type="text" id="interest" name="interest" placeholder="Interested in"><br>
Your query*:<br>
<textarea id="query" name="query" placeholder="Your query here(more then 10 words)..."></textarea><br>
<button id="submitBtn" name="submitBtn" type="submit">Submit Form</button>
</fieldset>
</form>
我保存了contact\\u表单。我的主题文件夹中的php文件。当我单击提交按钮时,找不到页面。这是放置contact\\u表单的正确路径。php文件。

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

您永远不会创建create-form.php, 这样做会带来安全问题。

例如,假设您的客户更改了主题,此联系人表单仍然有效。即使主题已停用。对于直接访问主题或插件内PHP文件的远程服务,任何表单处理程序、AJAX处理程序或端点也是如此。

WordPress是一个CMS,它应该处理对它的所有请求,而不是插件或主题中的单个文件

相反,不要在表单上指定操作,包括要检查的隐藏输入,然后查找该输入以处理表单输入,例如:

// Template
<form method="POST">
    <input type="hidden" name="aviras_contact_form" value="contact_form">
    ....
</form>

// functions.php
add_action( \'init\', function() {
    if ( empty( $_POST[\'aviras_contact_form\'] ) ) {
        return;
    }
    // handle form submission
}
对于AJAX,使用register_rest_route (考虑提出一个关于如何做到这一点的新问题)。对于第三方调用或处理程序,请使用重写规则或检查参数

此外,缩进您的代码,现在所有主要流行的编辑器都为您自动缩进,并且有自动重新缩进和美化的包(PHPStorm、Netbeans、Sublime Text、Coda等)