PHP第三方调用 UC_Center实现用户登录认证:
查了好多资料,最后总算完成了,整理如下:
(期间好多次调用没有成功的原因是没有UC_Ceneter的配置定义,但网页也不报错,调用完以后一片空白)
直接上代码
Login.php:
<?php
session_start();
#这是mySql库的配置参数。
include '../config/config_global.php';
header("Content-Type:text/html;charset=utf-8");
$password = $_POST['password'];
$username = $_POST['username'];
if($username<>"")
{
#这里是uc_ceneter的包含文件,一个是配置,一个是API.
include '../config/config_ucenter.php';
require_once '../uc_client/client.php';
#这是接口API调用,按手册上写,如果上面的配置不对,这个调用也不会成功
list($uid, $username, $password, $email) = uc_user_login($_POST['username'], $_POST['password']);
if($uid>0)
{
#登录成功以后增加的处理流程,
mysql_connect($_config['db']['1']['dbhost'],$_config['db']['1']['dbuser'],$_config['db']['1']['dbpw']) or die("无法连接数据库,请重试");
mysql_select_db("xxxxx") or die("无法选择数据库,请重试");
#自己登录以后增加了的一个新Session
$_SESSION['log_userid'] = trim(str_replace("'","''",$username));
echo 'OK'.trim($_SESSION['log_userid']);
}
else
{
#出错清空自己的Session,显示错误。
$_SESSION['log_userid']='';
echo 'Error'.$uid;
}
}
?>
最重要是包含文件一定要对,网上都说怎么调用,不说包含关系,一大堆的php,以及包含关系,看得人头大。
其中:
config_global.php是mysql配置
config/config_ucenter.php是uc_center配置,定义了UC_CONNECT,UC_DBHOST,...UC_KEY,UC_API,UC_APIID,UC_IP,UC_PPP等。
uc_client/client.php是uc_center的api实现。