我制作了一种自定义授权形式。 var_dump显示$ _POST中的数据已正确传递,但为什么不重定向到指定的页面呢?帮助我理解
my_authentification.php:
<?php $my_user = new WP_User(get_current_user_id()); ?>
<form name="loginform" id="loginform" action="http://myreg_test_wordpress.loc/wp-content/themes/twentysixteen/my_auth.php" method="post">
<div class="form-title "><h2>Authorization Form:</h2></div>
<label>Email: <br />
<input type="text" name="log" id="user_login" /></label>
<label>Password :<br />
<input type="password" name="pwd" id="user_pass" /></label>
<label><input name="rememberme" type="checkbox" id="rememberme" value="forever" /> remember</label>
<input type="submit" name="wp-submit" id="wp-submit" value="Войти" />
<input type="hidden" name="redirect_to" value="<?php bloginfo('url') ?>/my-temp-page-edit/" />
<input type="hidden" name="testcookie" value="1" />
<a href="<?php echo bloginfo('url').'/my-temp-page/' ?>"><div class="my_btn">link to registration page</div></a>
</form>
my_auth.php:
$_SERVER['HTTP_REFERER'];
require_once( dirname(__FILE__) . '/../../../wp-load.php' );
if( is_user_logged_in() ) exit;
$my_user = new WP_User(get_current_user_id());
$user = wp_signon();
if ( is_wp_error($user) ) {
echo $user->get_error_message();
//wp_redirect('http://myreg_test_wordpress.loc/wp-content/themes/twentysixteen/my_authorization.php');
var_dump('my_authorization');
} else {
//wp_redirect('http://myreg_test_wordpress.loc/wp-content/themes/twentysixteen/my_temp_page_edit.php');
var_dump('temp_page_edit');
}
答案 0 :(得分:2)
亚历山大。我可以假设你说俄语。可能会阅读俄文文档将更容易。 Check this link这对官方文档很好。
同样在之前的问答中,我给出了如何做到这一点的答案。
创建表单,发送admin-post.php并创建钩子 登录用户并重定向您需要的地方。或者使用默认的WordPress 登录页面。没有自定义表单。
admin-post.php参考和用法示例。并且不错guide如何在wordpress中使用admin-post.php
答案 1 :(得分:-1)
my_auth.php不要使用!我有问题因为我在wp_redirect之前是var_dumping $ user。并且wp_redirect没有用!
my_authentification.php:
<?php
if(isset($_POST['log'])) {
$user = wp_signon();
if (is_wp_error($user)) {
$auth_error = 'Wrong auth data';
} else {
// DON'T war_dumping !!!!!!!!
wp_redirect('/my-temp-page-edit');
exit;
}
};
get_header();
?>
<?php $my_user = new WP_User(get_current_user_id()); ?>
<?php if (!$my_user->ID) { ?>
<form name="loginform" id="loginform" method="post">
<div class="form-title "><h2>Authorization Form: <span><?php echo $auth_error ?></span></h2></div>
<label>Email: <br />
<input type="text" name="log" id="user_login" /></label>
<label>Password :<br />
<input type="password" name="pwd" id="user_pass" /></label>
<label><input name="rememberme" type="checkbox" id="rememberme" value="forever" /> Remember me</label>
<input type="submit" name="wp-submit" id="wp-submit" value="Enter" />
<input type="hidden" name="redirect_to" value="<?php bloginfo('url') ?>/my-temp-page-edit/" />
<input type="hidden" name="testcookie" value="1" />
</form>
<?php } ?>