100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 黑莓passport discuz Passport 通行证 整合笔记

黑莓passport discuz Passport 通行证 整合笔记

时间:2021-04-04 14:32:41

相关推荐

黑莓passport discuz Passport 通行证 整合笔记

后端开发|php教程

黑莓passport

后端开发-php教程

太简单了,但时间长了,记不得,浪费我半小时找资料,深刻体会好记性不如烂笔头!!今天把passport文挡贴上,防止以后忘记!!记住,网上找到自己需要的资料也要耗时间的!!!!!!

jsonobject 源码,ubuntu显示430,普元eos配置tomcat,应付反爬虫,安居客php面试题,辽宁创新抖音seo优化口碑推荐lzw

Passport 通行证 整合

二维码信息网源码,ubuntu命令设置网络,查tomcat版本命令,爬虫 框架 库,PHP技术架构有哪些,seo入门引流lzw

第一篇:整合原理

请注意: 整合不成功可能造成的后果—–dz论坛无法登录,无法管理

解决办法:

第一步: 到dz的数据库表cdb_settings 找到下面这几行修改为

仿小米商城源码,vscode和git关联,ubuntu关联py,tomcat启动检查,扁平爬虫,php 数据库连接数,seo免费工具推广,火车票查询网站 源码,phpcms v9 网页模板下载lzw

setting.jpg (4.3 KB)

-9-30 13:59

第二步: 删除dz安装目录/forumdata/cache/cache_settings.php

第三步: 重新访问论坛

登陆和注册整合流程

用户从登陆或注册表单提交帐号密码信息 ==>

主站程序检验用户登陆或注册,成功(注册需要生成新用户)则 ==>

设置主站自身的cookie或session ==>

url传递 返回地址forward和编码后的用户信息和其他信息 到dz/api/passport.php

整合之前请先仔细阅读官方passport技术文档: /usersguide/advanced_passport.htm

复制内容到剪贴板

代码:
<?php

//该文档保存为login.php

//首先将接口技术文档里的加密解密函数拷贝

//为了不让代码太乱,我拷贝到文档的结尾处

//假设自己的用户数据库表里用户名字段为UserName, 密码字段为Pwd, Email字段为 Email

//注册页实现方法差不多,可自行实现,疑问加我QQ:2666556

$act=(isset($_GET[‘act’]))?$_GET[‘act’]:”login”;

if(function_exists($act)) $act();else login();

function login()

{

$ErrMsg=UserCheck();

if($ErrMsg!=””)echo $ErrMsg;

//后面加上显示你的登陆表单的代码 如

?>用户名:

密码:

<?php

}//end function

function logout()//登出

{

$passportkey=”1234567890″;//这里换成你论坛通行证设置的passportkey

$auth=$_COOKIE[‘auth’];

setcookie(“auth”, “”,time() – 3600);

$forward=$_GET[‘forward’];

if($forward==””)$forward=”../../index.php”;//这里换成你的主页绝对地址或相对地址

$verify = md5(‘logout’.$auth.$forward.$passportkey);

$auth=rawurlencode($auth);

$forward=rawurlencode($forward);

header(“Location: bbs/api/passport.php?action=logout&auth=$auth&forward=$forward&verify=$verify”);

}

function UserCheck()

{

$passportkey=”1234567890″;//这里换成你论坛通行证设置的passportkey

//===========验证输入=====================

if(!isset($_POST[‘submit’])) return; // login表单的按钮需要与此同名

$usnm=$_POST[‘username’];//username换成你登陆表单里的用户名域

$pwd=$_POST[‘password’];//password换成你登陆表单里的密码域

if($usnm==””) return “请输入用户名!”;

if($pwd==””) return “请输入密码!”;

//=========数据库处理==========================

$db=mysql_connect(“localhost”, “root”, “”);

mysql_select_db(“your_db_name”);

$sql=”Select * from `user` where UserName=”.$usnm.”‘ Limit 1″;

$rs = mysql_query($sql,$db) ;

$row = mysql_fetch_array($rs);

if(!$row)return “该用户不存在”;

if($row[“Pwd”]!=md5($pwd))return “密码错误”;

mysql_free_result($rs);

//==============header到bbs=====================

$member = array

(

‘time’=> time(),

‘username’ => $row[“UserName”],

‘password’ => $row[“Pwd”],

’email’ => $row[“Email”]

);

$auth = passport_encrypt(passport_encode($member), $passportkey);

setcookie(“auth”,$auth,($_POST[“Cookie”]? time()+(int)$_POST[“Cookie”] :0));

$forward=$_POST[‘forward’];

if($forward==””)$forward=”../../index.php”;

$verify = md5(‘login’.$auth.$forward.$passportkey);

$auth=rawurlencode($auth);

$forward=rawurlencode($forward);

header(“Location: bbs/api/passport.php?action=login&auth=$auth&forward=$forward&verify=$verify”);

}

//=============================================================

//=============以下为拷贝过来的函数============================

function passport_encrypt($txt, $key) {

srand((double)microtime() * 1000000);

$encrypt_key = md5(rand(0, 32000));

$ctr = 0;

$tmp = ”;

for($i = 0; $i < strlen($txt); $i++) {

$ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;

$tmp .= $encrypt_key[$ctr].($txt[$i] ^ $encrypt_key[$ctr++]);

}

return base64_encode(passport_key($tmp, $key));

}

function passport_decrypt($txt, $key) {

$txt = passport_key(base64_decode($txt), $key);

$tmp = ”;

for ($i = 0; $i < strlen($txt); $i++) {

$tmp .= $txt[$i] ^ $txt[++$i];

}

return $tmp;

}

function passport_key($txt, $encrypt_key) {

$encrypt_key = md5($encrypt_key);

$ctr = 0;

$tmp = ”;

for($i = 0; $i < strlen($txt); $i++) {

$ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;

$tmp .= $txt[$i] ^ $encrypt_key[$ctr++];

}

return $tmp;

}

function passport_encode($array) {

$arrayenc = array();

foreach($array as $key => $val) {

$arrayenc[] = $key.’=’.urlencode($val);

}

return implode(‘&’, $arrayenc);

}

//=========================================================================

//===========================拷贝结束======================================

?>

以上就介绍了黑莓passport discuz Passport 通行证 整合笔记,包括了黑莓passport方面的内容,希望对PHP教学有兴趣的朋友有所帮助。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。