discuz论坛 用户登录 后台程序代码_php实例

还好,用户登录这里通过一个小小的方法可以实现和论坛同步了.可以不用passport接口.
这是我整理的数据,仅供参考.
登录传两值过来就行(username和password);

复制代码 代码如下:

<?php
session_start();
define('NOROBOT', TRUE);
define('CURSCRIPT', 'logging');
require_once './include/common.inc.php';
require_once DISCUZ_ROOT.'./include/misc.func.php';
if($action == 'login') {
$field = $loginfield == 'uid' ? 'uid' : 'username';
//get secure code checking status (pos. -2)
$seccodecheck = substr(sprintf('%05b', $seccodestatus), -2, 1);
if($seccodecheck && $seccodedata['loginfailedcount']) {
$seccodecheck = $db->result($db->query("SELECT count(*) FROM {$tablepre}failedlogins WHERE ip='$onlineip' AND count>='$seccodedata[loginfailedcount]' AND $timestamp-lastupdate<=900"), 0);
}
$discuz_uid = 0;
$discuz_user = $discuz_pw = $discuz_secques = $md5_password = '';
$member = array();
$loginperm = logincheck();
if(!$loginperm) {
showmessage('login_strike');
}
$secques = quescrypt($questionid, $answer);
if(isset($loginauth)) {
$field = 'username';
$password = 'VERIFIED';
list($username, $md5_password) = daddslashes(explode("\t", authcode($loginauth, 'DECODE')), 1);
} else {
$md5_password = md5($password);
$password = preg_replace("/^(.{".round(strlen($password) / 4)."})(.+?)(.{".round(strlen($password) / 6)."})$/s", "\\1***\\3", $password);
}
$query = $db->query("SELECT m.uid AS discuz_uid, m.username AS discuz_user, m.password AS discuz_pw, m.secques AS discuz_secques,
m.adminid, m.groupid, m.styleid AS styleidmem, m.lastvisit, m.lastpost, u.allowinvisible
FROM {$tablepre}members m LEFT JOIN {$tablepre}usergroups u USING (groupid)
WHERE m.$field='$username'");
$member = $db->fetch_array($query);
//判断登录是否正确
if($member['password']!=$md5_password){
echo "您输入的用户名或密码错误!";
exit();
}
//通过就执行下边的程序
extract($member);
$discuz_userss = $discuz_user;
$discuz_user = addslashes($discuz_user);
if(($allowinvisible && $loginmode == 'invisible') || $loginmode == 'normal') {
$db->query("UPDATE {$tablepre}members SET invisible='".($loginmode == 'invisible' ? 1 : 0)."' WHERE uid='$member[discuz_uid]'", 'UNBUFFERED');
}
$styleid = intval(empty($_POST['styleid']) ? ($styleidmem ? $styleidmem :
$_DCACHE['settings']['styleid']) : $_POST['styleid']);
$cookietime = intval(isset($_POST['cookietime']) ? $_POST['cookietime'] :
($_DCOOKIE['cookietime'] ? $_DCOOKIE['cookietime'] : 0));
dsetcookie('cookietime', $cookietime, 31536000);
dsetcookie('auth', authcode("$discuz_pw\t$discuz_secques\t$discuz_uid", 'ENCODE'), $cookietime);
$sessionexists = 0;
updatesession();//更新论坛USERPASS数据
echo "{'action':'ture'}";//这里是您要输出的数据
print_r($_DSESSION);
echo $discuz_userss;
}
?>

时间: 2024-09-20 00:02:04

discuz论坛 用户登录 后台程序代码_php实例的相关文章

php实现简单用户登录功能程序代码

用户登录系统(没数据库) 关键的代码: 在loginUI.php中主要是: --------------------------–  代码如下 复制代码 <?php if(error!=null){ $error=$_GET['error']; echo $error; echo "登陆失败,请检查您的用户名(yugaga)和密码(123456)"; } ?> ---------------------------- 就是在登录失败之后显示一些提示信息 在loginChec

PHP通过微信跳转的Code参数获取用户的openid(关键代码)_php实例

关键代码如下所示: //获取微信登录用户信息 function getOpenID($appid,$appsecret,$code){ $url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=". $appsecret."&code=".$code."&grant_type=authorization_code

用phpmailer实现简单openvpn用户认证的实现代码_php实例

现在每个人都有无数帐号密码, 难免记不住; 原理是通过 邮件服务器 pop 服务完成认证,也可以使用SMTP,并加SSL已提高安全性; 免去设置用户/密码麻烦,适合有自己邮件服务器的场合, 需要PHPMailer, 请自行google PHP代码 复制代码 代码如下: <?php require_once('class.phpmailer.php'); require_once('class.pop3.php'); $username = getenv('username'); $passwor

一个图形显示IP的PHP程序代码_php实例

先看代码sunip.php 复制代码 代码如下: <?php  header("Content-type: image/gif");  $im = imagecreate(130,15);  $background_color = ImageColorAllocate ($im, 255, 255, 255);   unset($ip);  if($_SERVER['HTTP_CLIENT_IP']){  $ip=$_SERVER['HTTP_CLIENT_IP'];  } el

Discuz Ucenter整合自己应用程序代码

Discuz Ucenter整合自己应用程序代码 安装(这个不用说详了吧) 安装官方安装后,会自动把ucenter和dz打通的,如图 下载 (21.53 KB) 2009-3-20 19:14 3.添加自己的新的应用 点添加新应用,然后选自定义,然后如图(根据你自己的更改)输入 下载 (86.04 KB) 2009-3-20 19:18 4.创建自己的测试环境 把UCenter_1.5.0_SC_UTF8(1)advancedexamples拷贝到你的测试目录,并把advanced中的uc_cl

Flash和ASP实现的用户登录/注册程序

核心提示:Flash和ASP实现的用户登录/注册程序教程. Flash一帧可以完成.asp也可以一个文件完成,这里我将用户登录和用户注册分为两步做,方便大家理解,Flash分两帧,asp分两个文件. 准备: Flash8 , IIS ,Miscrosoft Access 2003; 开始: 数据库中: 用设计视图新建一个名为 UserTable 的表,三个字段分别为 id 为自动编号,username为文本,password为文本; 输入一条数据 username 和 password 都为ch

php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码_php实例

这里讲一个简单的方法,直接使用discuz的include/common.inc.php来登录. 复制代码 代码如下: include_once("../discuz/include/common.inc.php"); $CTDF_USERINFO = array(); $CTDF_USERINFO["sid"] = $sid; $CTDF_USERINFO["uid"] = $discuz_uid; $CTDF_USERINFO["u

php中使用session防止用户非法登录后台的方法_php技巧

本文实例讲述了php中使用session防止用户非法登录后台的方法.分享给大家供大家参考.具体如下: 一般来说,我们登录网站后台时,服务器会把登录信息保存到session文件里,并通过读取session文件来判断是否可以进行后台操作. 以下面为例,假如admin.php是我们的后台操作页面,如果没有启用 session,那么,即便是没有登录,用户照样能访问到该页面,这时候,就需要用到 session 来防止用户非法登录到这个页面了.下面是三个文件的代码 登录页面:login.php 复制代码 代

php同时使用session和cookie来保存用户登录信息的实现代码_php实例

1.用户登录状态操作类UserLogin <?php final class UserLogin { public function __construct() { } public static function getUserInfo() { if (isset($_COOKIE["user_id"])&&$_COOKIE["user_id"]&&(trim($_COOKIE["user_id"])!=&