Wordpress 自定义注册 $_POST 不工作
Wordpress Custom Registration $_POST not working
所以,我在 Wordpress 的自定义主题中进行自定义注册,我已经使用相同的方法完成登录,并且工作正常,但由于某种原因注册不起作用,因为当请求在 /registration/ 上提交到 /registration/ $_POST 不工作。
我的代码
<?php
/*
Template Name: Registration
*/
?>
<?php
global $wpdb, $user_ID;
if ($_POST) {
// GETTING VALUES
// VALIDATION
// Creating user if no errors
}
get_header();
?>
<form class="form" method="POST" action="<?php echo $_SERVER['REQUEST_URI']" />
// FORM STUFF
</form>
?>
为了最小化示例,我删除了 $_POST 条件中的代码,因为它较新得到执行。 POST 请求被发送到正确的 URl,但是 returns 404。将 GET 请求发送到相同的 URL 会导致显示此页面,正如它应该的那样。
有什么想法吗?
这是因为$_POST本身的真值是假的,即使它里面有值。例如,如果您将执行以下操作
<?php var_dump( $_POST === true ); ?>
程序将return一个false
。
您应该改为测试以下命题:
<?php
if( isset( $_POST ) ){
// Your code here if form is submitted.
}
?>
我也注意到表单属性有一些错误,
应该是
<form class="form" method="POST" action="<?php echo $_SERVER['REQUEST_URI']; ?>" >
</form>
而不是
<form class="form" method="POST" action="<?php echo $_SERVER['REQUEST_URI']" />
// FORM STUFF
</form>
所以,我在 Wordpress 的自定义主题中进行自定义注册,我已经使用相同的方法完成登录,并且工作正常,但由于某种原因注册不起作用,因为当请求在 /registration/ 上提交到 /registration/ $_POST 不工作。
我的代码
<?php
/*
Template Name: Registration
*/
?>
<?php
global $wpdb, $user_ID;
if ($_POST) {
// GETTING VALUES
// VALIDATION
// Creating user if no errors
}
get_header();
?>
<form class="form" method="POST" action="<?php echo $_SERVER['REQUEST_URI']" />
// FORM STUFF
</form>
?>
为了最小化示例,我删除了 $_POST 条件中的代码,因为它较新得到执行。 POST 请求被发送到正确的 URl,但是 returns 404。将 GET 请求发送到相同的 URL 会导致显示此页面,正如它应该的那样。 有什么想法吗?
这是因为$_POST本身的真值是假的,即使它里面有值。例如,如果您将执行以下操作
<?php var_dump( $_POST === true ); ?>
程序将return一个false
。
您应该改为测试以下命题:
<?php
if( isset( $_POST ) ){
// Your code here if form is submitted.
}
?>
我也注意到表单属性有一些错误, 应该是
<form class="form" method="POST" action="<?php echo $_SERVER['REQUEST_URI']; ?>" >
</form>
而不是
<form class="form" method="POST" action="<?php echo $_SERVER['REQUEST_URI']" />
// FORM STUFF
</form>