PHP调用discuz登陆框实现外部登录

作者:简简单单 2013-10-30

方法一,直接使用iframe调用一个加了discuz登录功能的页面

 代码如下 复制代码

 


login.html代码

 代码如下 复制代码





c-gd.com-登录





方法二,利用php方式调用了

在自定义的PHP页面里加入discuz登陆框。PHP如何调用discuz登陆框。

 代码如下 复制代码
 error_reporting(0);
 require 'source/class/class_core.php';
 $discuz = & discuz_core::instance();
 $discuz->init();
if (empty($_G['uid'])) {
?>
 

 用户名:
 密码:
 
 注册
 找回密码
 


 

 

尊敬的,欢迎您光临!  | 我的帖子 |  个人中心 |  退出登陆

 


方法三:discuz登陆框是ajax调用的,一开始在firebug下看到了调用了接口:

 代码如下 复制代码
/member.php  ?mod=logging&action=login&infloat=yes&handlekey=login&inajax=1&ajaxtarget=fwin_content_login

 
这返回的是一个xml的内容,其中就一个结点root,里面会根据本地的cookies判断是否登录了论坛,如果没有登陆

里面的内容就是一段form登陆表单。如果登陆了里面就是一段登陆后的信息。然后将ajax请求中的css保存到本

地。能够实现登陆框调用。登陆框中有一个hidden的input name=‘reffer’ 这里面的value值是来路链接.不过要是

论坛程序里的。比如将这个连接换成h/home.php?mod=spacecp&ac=blog这样登陆完后会

自动跳转到发博客的页面。可以实现一键发帖功能。

代码如下:

 代码如下 复制代码

$login = file_get_contents("/member.php? 
mod=logging&action=login&infloat=yes&handlekey=login&inajax=1&ajaxtarget=fwin_content_login"); 
require_once('SofeeXmlParser.php');//xml解析类 博客里搜索xml有相关介绍 
$xml = new SofeeXmlParser(); 
$xml->parseString($login); 
$tree = $xml->getTree(); 
$login = str_replace("member.php","h/member.php",$tree["root"]["value"]); 
$login = str_replace("h/./","h/home.php? 
mod=spacecp&ac=blog",$login);//跳转到发帖页面 
$login = preg_replace('/

(.*)

/i','',$login); 
var_dump($login); 
exit(); 
$login = iconv('utf-8','gbk',$login); 
   
echo $login; 
?>

相关文章

精彩推荐