名称:登陆后台同步
简介:选择“是”管理员和撰写组在前台登陆与后台同步登陆,注册组不在设置以内。
适用版本:
for sablog-x 1.6
原理:在前台登陆一刹那把后台登陆信息也cookie记录上,创造和正常后台登陆的条件,从而达到同步。
注:能解决登陆2次才能发表文章功能,sax-1.6后台验证非常安全,经本人反复多次测试,没发现任何问题
升级mysql复制内容到剪贴板
代码:
INSERT INTO `sablog`.`sablog_settings` (
`title` ,
`value`
)
VALUES (
'sax_admin_login', '1'
);打开程序post.php文件
查找
复制内容到剪贴板
代码:
$userinfo = $DB->fetch_one_array("SELECT userid,password,logincount,url,groupid FROM {$db_prefix}users WHERE username='$username'");替换成
复制内容到剪贴板
代码:
$userinfo = $DB->fetch_one_array("SELECT userid,username,password,logincount,url,groupid FROM {$db_prefix}users WHERE username='$username'");查找
复制内容到剪贴板
代码:
setcookie('sax_auth', authcode("$userinfo[userid]\t$password\t$logincount"), $timestamp+2592000);在下一行加上
复制内容到剪贴板
代码:
//后台登陆是否同步
if ($options['sax_admin_login'] == 1) {
$sax_uid = $userinfo['userid'];
$sax_user = $userinfo['username'];
$sax_group = $userinfo['groupid'];
if ($userinfo['groupid'] == 1 || $userinfo['groupid'] == 2) {
$adminhash = getadminhash($sax_uid,$sax_user,$password,$logincount);
$admininfo = getadmininfo($password);
setcookie('sax_admin', authcode("$sax_uid\t$adminhash\t$admininfo\t$onlineip"));
$DB->query("DELETE FROM {$db_prefix}sessions WHERE uid='$sax_uid' OR lastactivity+2592000<'$timestamp' OR hash='$adminhash'");
$DB->query("INSERT INTO {$db_prefix}sessions (hash,uid,groupid,ipaddress,lastactivity) VALUES ('$adminhash', '$sax_uid', '$sax_group', '$onlineip', '$timestamp')");
}}找查
复制内容到剪贴板
代码:
if ($_GET['action'] == 'logout') {在下一行加上
复制内容到剪贴板
代码:
if ($options['sax_admin_login'] == 1) {
$DB->query("DELETE FROM {$db_prefix}sessions WHERE uid='$sax_uid'");
setcookie('sax_admin', '');
}打开程序文件global.php文件最后加上
复制内容到剪贴板
代码:
// 获取管理员散列
function getadminhash($uid,$username,$password,$count) {
global $timestamp;
return substr(md5(substr($timestamp, 0, -7).$username.$uid.$password.$count), 8, 8);
}
// 获取管理员的信息
function getadmininfo($password) {
return md5($_SERVER["HTTP_USER_AGENT"].$password);
}打开程序admin\configurate.php文件
查找
复制内容到剪贴板
代码:
ifselected($settings['rss_enable'],'rss_enable');在下一行加上
复制内容到剪贴板
代码:
ifselected($settings['sax_admin_login'],'sax_admin_login');打开模板文件\templates\admin\configurate.php
查找
复制内容到剪贴板
代码:
<tr class="tablecell">
<td width="60%"><b>显示信息提示页面:</b><br />
选择是“是”将在提交内容后,显示提示信息,否则直接跳转页面。建议流量非常大的选择是“是”。此开关影响发表评论、搜索引擎、跳转最新评论、跳转上一篇或下一篇文章。</td>
<td><select name="setting[showmsg]">
<option value="1" $showmsg_Y>是</option>
<option value="0" $showmsg_N>否</option>
</select>
</td>
</tr>在下一行加上
复制内容到剪贴板
代码:
<tr class="tablecell">
<td width="60%"><b>登陆后台同步:</b><br />
选择“是”管理员和撰写组在前台登陆与后台同步登陆,注册组不在设置以内。<br /><b>注:此设置有一定的安全隐患</b>
</td>
<td><select name="setting[sax_admin_login]">
<option value="1" $sax_admin_login_Y>是</option>
<option value="0" $sax_admin_login_N>否</option>
</select>
</td>
</tr>最后更新所有缓存
[
本帖最后由 dxx 于 2008-6-14 10:11 编辑 ]