discuz论坛登陆框外部调用的几种方法

必度网博客改版需要在首页程序添加discuz的登陆,方便辅导员写博客。这就涉及到外部程序调用discuz登

录框的问题。弄了1天发现了几种方法:

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

?
1
2
http://pekdo.com/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值是来路链接.不过要是

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

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

代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php 
$login  file_get_contents ("http: //home.ecjtu.net/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","http://pekdo.com/member.php",$tree["root"]["value"]); 
$login = str_replace("http://pekdo.com/./","http://pekdo.com/home.php? 
mod=spacecp&ac=blog", $login ); //跳转到发帖页面 
$login  = preg_replace( '/<h3 class="flb">(.*)<\/h3>/i' , '' , $login ); 
var_dump( $login ); 
exit (); 
$login  = iconv( 'utf-8' , 'gbk' , $login ); 
   
echo  $login
?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值