我在Wordpress中创建了一个页面,并将此表单用作模板。但是当我提交表单时,它会显示Error 404 page not found
。
我在php中尝试了各种脚本,但我没有取得丰硕成果。希望得到最好的答案。谢谢:))
这是我的编码
<?php
/*
template name: visit
*/
$servername= "localhost";
$username="root";
$password="";
$database="wp_chandan";
if(isset($_POST['name']) && isset($_POST['email']))
{
$name=$_POST['name'];
$email=$_POST['email'];
var_dump($email);
@mysql_connect($servername,$username,$password);
@mysql_select_db($database);
$query=mysql_query("insert into visitor_d (NAME,Email) values ('$name','$email') ");
} ?>
<html>
<head>
<?php get_header(); ?>
<style type='text/css'>
/* form elements */
form {
margin:100px;
padding: 10px 2px;
background: #F5F5F5;
width: 50%;
height:auto;
border:1px solid green;
}
input {
padding:2px;
border:1px solid #eee;
font: normal 1em Verdana, sans-serif;
color:#777;
align:center;
}
input.button {
font: bold 12px Arial, Sans-serif;
height: 24px;
margin: 0;
align:center;
padding: 2px 3px;
color: #333;
background: #e7e6e6 url(MarketPlace-images/button.jpg) repeat-x;
border: 1px solid #dadada;
}
</style>
</head>
<form action="" method="POST">
<fieldset>
<legend><b><u>Visitor Details:</u></b></legend>
Name: <input type="text" name="name" placeholder="Fill Name" required><br><br>
Email: <input type="text" name="email" required placeholder="Enter Email"><br><br>
<input type="submit" name="submit"><br>
</fieldset>
</form>
<?php get_footer();?>
</html>
答案 0 :(得分:2)
确保您在表单字段的name
属性中没有任何保留的WordPress术语。
WordPress使用许多这些保留的术语进行内部重写,因此如果使用name
属性,例如&#34; name&#34;,它会破坏WordPress重写规则和原因提交表格后,此404 Not Found页面。
在此处查看更多内容:http://www.lost-in-code.com/platforms/wordpress/wordpress-404-not-found-when-submitting-form/
答案 1 :(得分:1)
html5不喜欢空动作属性,它确实会在某些浏览器中引起问题。你还没有选择标准,所以我假设浏览器默认为html5
<form action="#" method="POST">
将操作设置为#
应该有效,但要注意的一件事是在加载页面模板之前添加的操作,这显然可以获取$ _POST并且重定向会很常见,这也可能是一个原因
也
Name: <input type="text" name="name" placeholder="Fill Name" required>
WP不喜欢当你调用字段“name”时它与某些内容冲突(我现在已经忘记了原因)
Name: <input type="text" name="aname" placeholder="Fill Name" required>