1

我正在为我的 WordPress 会员网站创建一个 iPhone 应用程序。在我的应用程序中,用户面临一个登录屏幕,他们在其中输入用户名和密码,这些信息通过 POST 发送到我存储在服务器上的外部 php 页面。

我要做的是在外部 php 页面中检查用户的凭据。如果用户在 wp 数据库上注册并输入了正确的凭据,则发回“成功”响应,否则什么也不做。

我的问题是这不起作用。我正在使用 wp_signon 函数,但由于某种原因 is_wp_error($user_verify) 一直返回 1。这是我到目前为止的代码,非常感谢您的帮助。

<?php $parse_uri = explode('apple', $_SERVER['SCRIPT_FILENAME']); //makes this page part of wordpress
$wp_load = $parse_uri[0].'wp-load.php';
require_once($wp_load);
global $wpdb;
global $current_user;

//####### THIS CODE IS RESPONSIBLE FOR A SECURE LOG IN INTO THE iPhone APP #############
header('Content-Type: application/json'); //matches the json content type the app is expecting

//SQL escape all inputs  
$username = $wpdb->escape($_POST['username']);  
$password = $wpdb->escape($_POST['password']);  

 $login_data = array();  
 $login_data['user_login'] = $username;  
 $login_data['user_password'] = $password;  
 $login_data['remember'] = true;
 $user_verify = wp_signon( $login_data, true);   

if (is_wp_error($user_verify) )   
{   
//DENY ACCESS : FAILURE 
 exit();  

} else  {
//$user_verify contains WP_User object 

//GRANT ACCESS : SUCCESS
 echo '[{"success":"true"}]'; 
exit();  

}  

?>

更新

经过一些测试,我上面提供的代码实际上是完美的,问题出在 iOS 端。

4

0 回答 0