2015-06-20 110 views
0

我試圖使用wp_signon進行登錄表單。我是WordPress新手。它不在之後重定向。我的代碼是:wp_signon不重定向到一個頁面

<?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(); 

,當我嘗試登錄用的用戶名和密碼,還有一個消息:

ERROR: The password field is empty. I enter correct username and password. What is this due to?

+0

這是我的整個代碼。它不是在頁面的開頭嗎?如何解決它? :) –

+0

是否有任何與用戶登錄或認證相關的插件激活? – vrajesh

回答

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> 
相關問題