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实现。