【问题标题】:wp_signon doesn't redirect to a pagewp_signon 不会重定向到页面
【发布时间】:2015-09-06 14:14:06
【问题描述】:

我正在尝试使用 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();

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

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

【问题讨论】:

  • 这是我的全部代码。不是在页面的开头吗?如何解决? :)
  • 是否有激活与用户登录或认证相关的插件?

标签: wordpress forms redirect login


【解决方案1】:

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

  1. 无论是否收到发布信息,您的表单处理代码和重定向都会尝试运行。
  2. wp_redirect之后需要手动退出代码

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

    <?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>

【讨论】:

    猜你喜欢
    • 2017-10-26
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    相关资源
    最近更新 更多