discuz 单点登录 其他人做法 还真不清楚
当初我的第一个方案是模拟登录 保存cookie信息,但失败了 具体问题也就没看了
第二方法也就是很简单的方法了 直接隐藏表单提交
如果有自己服务器的朋友 可以使用 memcache 来做 那样会更方便点
比如在memcache保存 用户名和密码
当在java 或 php 等连接到discuz前 先进入到这个php(比如:login)
代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>登录中...</title>
</head>
<body>
<div style="display:none">
<form method="post" id="login" name="login" action="logging.php?action=login&">
<input type="hidden" name="formhash" value="ef83ae73" />
<input type="hidden" name="referer" value="index.php" />
<div class="mainbox formbox">
<span class="headactions"><a href="faq.php?action=message&id=3" target="_blank">登录帮助</a></span>
<h1>会员登录</h1>
<table summary="会员登录" cellspacing="0" cellpadding="0">
<tr>
<th onclick="document.login.username.focus();">
<label><input class="radio" type="radio" name="loginfield" value="username" tabindex="2" checked="checked" />用户名</label>
<label><input class="radio" type="radio" name="loginfield" value="uid" tabindex="3" />UID</label>
</th>
<td>
<input type="text" id="username" name="username" size="25" maxlength="40" tabindex="4" />
<a href="register.php">立即注册</a>
</td>
</tr>
<tr>
<th><label for="password">密码</label></th>
<td>
<input type="password" id="password" name="password" size="25" tabindex="5" />
<a href="member.php?action=lostpasswd">忘记密码</a>
</td>
</tr>
<tr>
<th><label for="questionid">安全提问</label></th>
<td>
<select id="questionid" name="questionid" tabindex="6">
<option value="0">无安全提问</option>
<option value="1">母亲的名字</option>
<option value="2">爷爷的名字</option>
<option value="3">父亲出生的城市</option>
<option value="4">您其中一位老师的名字</option>
<option value="5">您个人计算机的型号</option>
<option value="6">您最喜欢的餐馆名称</option>
<option value="7">驾驶执照的最后四位数字</option>
</select>
</td>
</tr>
<tr>
<th><label for="answer">回答</label></th>
<td><input type="text" id="answer" name="answer" size="25" tabindex="7" /> 如果您设置了安全提问,请回答正确的答案</td>
</tr>
<tr>
<th>登录有效期</th>
<td>
<label><input class="radio" type="radio" name="cookietime" value="315360000" tabindex="8" /> 永久</label>
<label><input class="radio" type="radio" name="cookietime" value="2592000" tabindex="9" checked="checked" /> 一个月</label>
<label><input class="radio" type="radio" name="cookietime" value="86400" tabindex="10" /> 一天</label>
<label><input class="radio" type="radio" name="cookietime" value="3600" tabindex="11" /> 一小时</label>
<label><input class="radio" type="radio" name="cookietime" value="0" tabindex="12" /> 浏览器进程</label>
</td>
</tr>
<tr>
<th><label for="loginmode">隐身登录</label></th>
<td>
<select id="loginmode" name="loginmode" tabindex="13">
<option value="">- 使用默认 -</option>
<option value="normal"> 正常模式</option>
<option value="invisible"> 隐身模式</option>
</select>
</td>
</tr>
<tr>
<th><label for="styleid">界面风格</label></th>
<td>
<select id="styleid" name="styleid" tabindex="14">
<option value="">- 使用默认 -</option>
<option value="1">默认风格</option>
<option value="2">喝彩奥运</option>
<option value="3">深邃永恒</option>
<option value="4">粉妆精灵</option>
<option value="5">诗意田园</option>
<option value="6">春意盎然</option>
</select>
</td>
</tr>
<tr>
<th> </th>
<td><button class="submit" type="submit" id="loginsubmit" name="loginsubmit" value="true" tabindex="100">提交</button></td>
</tr>
</table>
</div>
</form>
</div>
<script>
function u_login(v_anme,v_pass) {
document.getElementById("username").value = v_anme;
document.getElementById("password").value = v_pass;
document.getElementById("loginsubmit").click();
}
</script>
</body>
</html>
<?php
require_once './include/common.inc.php';
require_once DISCUZ_ROOT.'./include/misc.func.php';
if($discuz_uid) {
echo "<script>location.href='index.php'</script>";
} else {
$ticket = $_GET['ticket'];
if(isset($ticket) && trim($ticket != "")) {
require_once './plugins/memcached-client.php';
$options = array(
'servers' => array('localhost:11211'),
'debug' =>false,
'compress_threshold' => 10240,
'persistant' => false);
$mc = new memcached($options);
$val = $mc->get($ticket);
if($val == "") {
//跳转到登陆页面
echo "Ticket为空";
//echo "<script>location.href='index.php'</script>";
} else {
$values = explode(",",$val);
echo "<script>u_login('".$values[0]."','".$values[1]."');</script>";
}
} else {
//跳转到登陆页面
echo "需要跳转到登陆页面";
//echo "<script>location.href='index.php'</script>";
}
}
?>
分享到:
相关推荐
Discuz论坛模拟单点登录的测试小程序代码,数据库文件在src目录下,自行下载discuz论坛安装部署启动后,配置好config.properties的相关参数即可,该程序可以完成向discuz论坛注册用户和单点登录功能。关于discuz相关...
java_to_discuz单点登录手册
UCenter+MediaWiki+Discuz X2实现单点登录
Discuz!NT3.1整合 单点登录 没有任何问题 包含常用整合注意事项 绝对原创!!
把文件放在论坛根目录下(bbs)
ASP.NET二次开发Discuz,单点登录功能,同步注册退出等,
discuz x2.5和cas集成,实现cas单点登录 SSO , php-5.2.14-Win32,Apache 2 2 ,PHPnow-1.5.6
discuz做系统集成时,注册数据时,不能同步向子系统添加数据,及注册后不能及时登录,该文档解决该问题。
获取discuz登录信息程序, 也适合于其他类型的网站和discuz登录整合。 2、2006年写的今天升了一下级, 仔细研究一下, 可以嵌入自己的网站代码里实现同步登录。 也可以独立使用注释明确。 3、感谢我自己supFire...
DISCUZ论坛后台管理员登录后会自动退出登录的解决方法
PHP整合dedecms+ucenter+discuz三家,实现用户单点登录功能(同步登录与退出).zip
Comsenz(康盛)的 UCenter 当前在国内的单点登录领域占据绝对份额,其完整的产品线令 UCenter 成为了账号集成方面事实上的标准。基于 UCenter,可以将 Comsenz 旗下的 Discuz!(社区论坛系统)、SupeSite(门户CMS...
快捷登录 for Discuz! 作者 土著人宁巴 人工智能实验室 出品(Made By Nimba, Team From AiLab.cn ) 功能介绍:本插件可以实现为用户生成一个“加密链接”,用户可将此链接加入收藏夹或桌面快捷方式,每次只需要...
discuz微信登录插件西瓜微信超级好用微信授权登录一次搞定支持手机版。自动生成账号,避免重名。
discuz微信登录插件,一定要有认证的订阅号或者服务号才能有效使用。
首页登录框 完美修改版for discuz!7.0 插件 安装方法: 1、打开 Discuz.htm, 搜索 <!--{if !$discuz_uid}-->上传附件,刷新即可!
分析Discuz7.0的加密方式,教你如何模拟Discuz的注册、登录……
北岸QQ登录 增强版2.2
Discuz论坛登录验证分析,值得学习,谁看谁知道
discuz 2.5和cas集成 修改方法和cas php客户端