wp_signon没有重定向到页面

时间:2015-06-20 18:56:12

标签: wordpress forms redirect login

我尝试使用wp_signon创建登录表单。我是WordPress的新手。它没有重定向。我的代码是:

<?php
global $wpdb;
$username=$_POST['username'];
$password=$_POST['password'];
$creds = array();
$creds['user_login'] =$username ;
$creds['user_pass'] = $password;
$creds['remember'] = true;
$user = wp_signon( $creds, false );

wp_redirect('myurl here');
?>
<form action="" method="post"/>
    <input type="text" name="username" placeholder="Username"/> 
    <input type="text" name="password" placeholder="Password"/><br> 
    <input type="submit" name="submit" value="Submit">
</form>

编辑:我在我的代码之后添加了这个:

 if ( is_wp_error($user) )
 echo $user->get_error_message();

当我尝试使用用户名和密码登录时,会显示一条消息:

  

错误:密码字段为空。   我输入正确的用户名和密码。这到底是什么原因?

1 个答案:

答案 0 :(得分:1)

不是太远,但你有几个错误。

  1. 您的表单处理代码和重定向将尝试运行是否收到了帖子信息。
  2. 您需要在wp_redirect
  3. 之后手动退出代码

    您还应该查看我未在此处介绍的表单安全性。

        <?php
    
        if($_POST):
    
            $username=$_POST['username'];
            $password=$_POST['password'];
            $creds = array();
            $creds['user_login'] =$username ;
            $creds['user_pass'] = $password;
            $creds['remember'] = true;
            $user = wp_signon( $creds, false );
    
    
            if ( is_wp_error($user) ):
                echo $user->get_error_message();
            else:
                wp_redirect('myurl here');
                exit(); // you need to manually exit to get wp_redirect to work
            endif;  
        endif;
    
        ?>
    
        <form action="" method="post"/>
            <input type="text" name="username" placeholder="Username"/> 
            <input type="text" name="password" placeholder="Password"/><br> 
            <input type="submit" name="submit" value="Submit">
        </form>