PHPwind整合最土系統(tǒng)用戶同步登錄實(shí)現(xiàn)方法
更新時(shí)間:2010年12月08日 20:32:15 作者:
我的任務(wù)就是讓PHPWind和最土登錄同步,領(lǐng)導(dǎo)也知道我的技術(shù)能力有限,不怎么高要求,所以讓我先實(shí)現(xiàn),再考慮其他。趕鴨子上架,開工了。
上次成功升級(jí)了最土商業(yè)版,接下來就是整合公司的社區(qū)網(wǎng)站,先說明一下我現(xiàn)在工作的地方是個(gè)地方社區(qū)網(wǎng)站,用的基礎(chǔ)程序是PHPWind,我的任務(wù)就是讓PHPWind和最土登錄同步,領(lǐng)導(dǎo)也知道我的技術(shù)能力有限,不怎么高要求,所以讓我先實(shí)現(xiàn),再考慮其他。趕鴨子上架,開工了。
在我未成熟的程序思考能力下,我首先否定了重寫程序這個(gè)方法,再次否定了將PHPWind的驗(yàn)證方法引入到最土的方法,最后想出一個(gè)折中的辦法,將兩張表的唯一ID相同:將PHPWind用戶表設(shè)為主表,最土用戶表為外接表,讓最土用戶ID和PHPWind用戶表UID一一對(duì)應(yīng),通過用戶ID來完成接下來的同步工作。
多話不說,上步驟。
第一步:用戶同步
新建PHPWind用戶,最土同步相應(yīng)用戶,最土ID對(duì)應(yīng)PHPWind用戶ID。
register.php
$db->update("insert into tg_user (id,email,username,password,city_id,create_time,enable,realname) values ('".$winduid."','".addslashes($regemail)."','".addslashes($regname)."','".$windpwd."','1','".time()."','Y','".addslashes($regname)."')");
第二步:修改最土登錄模式使用Cookie方式
去掉密碼,將驗(yàn)證用戶名改成用戶ID。
ZUser.class.php
$field = strpos($email, '@') ? 'email' : 'id';//username
$zuituuser = DB::GetTableRow('tg_user', array(
$field => $email,
//'password' => $password,
index.php
$login_user = ZUser::GetLogin($_COOKIE['CookieID'], $_POST['password']);
Session::Set('user_id', $login_user['id']);
ZLogin::Remember($login_user);
ZUser::SynLogin($_POST['email'], $_POST['password']);
第三步:登錄PHPWind將用戶ID寫入Cookie值,退出PHPWind將用戶ID從Cookie值里清除
login.php/register.php
寫入Cookie
setCookie("CookieID", $Winduid);
清除Cookie
setcookie("CookieID", "", time() - 3600);
第四步:修改最土頁(yè)面連接
header.html
<ul class="links">
<li class="username">歡迎您,{$login_user['username']}!</li>
<li class="account"><a href="/order/index.php" id="myaccount" class="account">我的{$INI['system']['abbreviation']}</a></li>
<li class="logout"><a >退出</a></li>
</ul>
<!--{else}-->
<ul class="links">
<li class="login"><a href="/../login.php">登錄</a></li>
<li class="signup"><a href="/../register.php">注冊(cè)</a></li>
</ul>
同步登錄成功,所有的登錄和退出全部在PHPWind內(nèi)進(jìn)行,而最土只負(fù)責(zé)接受傳遞是否是空值來確認(rèn)是否登錄。
在我未成熟的程序思考能力下,我首先否定了重寫程序這個(gè)方法,再次否定了將PHPWind的驗(yàn)證方法引入到最土的方法,最后想出一個(gè)折中的辦法,將兩張表的唯一ID相同:將PHPWind用戶表設(shè)為主表,最土用戶表為外接表,讓最土用戶ID和PHPWind用戶表UID一一對(duì)應(yīng),通過用戶ID來完成接下來的同步工作。
多話不說,上步驟。
第一步:用戶同步
新建PHPWind用戶,最土同步相應(yīng)用戶,最土ID對(duì)應(yīng)PHPWind用戶ID。
register.php
復(fù)制代碼 代碼如下:
$db->update("insert into tg_user (id,email,username,password,city_id,create_time,enable,realname) values ('".$winduid."','".addslashes($regemail)."','".addslashes($regname)."','".$windpwd."','1','".time()."','Y','".addslashes($regname)."')");
第二步:修改最土登錄模式使用Cookie方式
去掉密碼,將驗(yàn)證用戶名改成用戶ID。
ZUser.class.php
復(fù)制代碼 代碼如下:
$field = strpos($email, '@') ? 'email' : 'id';//username
$zuituuser = DB::GetTableRow('tg_user', array(
$field => $email,
//'password' => $password,
index.php
復(fù)制代碼 代碼如下:
$login_user = ZUser::GetLogin($_COOKIE['CookieID'], $_POST['password']);
Session::Set('user_id', $login_user['id']);
ZLogin::Remember($login_user);
ZUser::SynLogin($_POST['email'], $_POST['password']);
第三步:登錄PHPWind將用戶ID寫入Cookie值,退出PHPWind將用戶ID從Cookie值里清除
login.php/register.php
寫入Cookie
setCookie("CookieID", $Winduid);
清除Cookie
setcookie("CookieID", "", time() - 3600);
第四步:修改最土頁(yè)面連接
header.html
復(fù)制代碼 代碼如下:
<ul class="links">
<li class="username">歡迎您,{$login_user['username']}!</li>
<li class="account"><a href="/order/index.php" id="myaccount" class="account">我的{$INI['system']['abbreviation']}</a></li>
<li class="logout"><a >退出</a></li>
</ul>
<!--{else}-->
<ul class="links">
<li class="login"><a href="/../login.php">登錄</a></li>
<li class="signup"><a href="/../register.php">注冊(cè)</a></li>
</ul>
同步登錄成功,所有的登錄和退出全部在PHPWind內(nèi)進(jìn)行,而最土只負(fù)責(zé)接受傳遞是否是空值來確認(rèn)是否登錄。
您可能感興趣的文章:
- PHPWind與Discuz截取字符函數(shù)substrs與cutstr性能比較
- PHPWind 發(fā)帖回帖Api PHP版打包下載
- PHPWIND 5.3 運(yùn)行代碼 功能實(shí)現(xiàn)代碼
- phpwind管理權(quán)限泄露漏洞利用程序發(fā)布
- 關(guān)于phpwind克隆用戶的方法
- php heredoc和phpwind的模板技術(shù)使用方法小結(jié)
- PHP 優(yōu)化配置——加速你的VBB,phpwind,Discuz,IPB,MolyX
- phpwind Exp 漏洞利用
- phpwind中的數(shù)據(jù)庫(kù)操作類
- PHPWind9.0手動(dòng)屏蔽驗(yàn)證碼解決后臺(tái)關(guān)閉驗(yàn)證碼但是依然顯示的問題
相關(guān)文章
PHP實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建XML文檔的方法
這篇文章主要介紹了PHP實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建XML文檔的方法,結(jié)合實(shí)例形式分析了php針對(duì)xml格式數(shù)據(jù)的構(gòu)建及文件讀寫相關(guān)操作技巧,需要的朋友可以參考下2018-03-03
完美解決令人抓狂的zend studio 7代碼提示(content Assist)速度慢的問題
本篇文章是對(duì)解決令人抓狂的zend studio 7代碼提示(content Assist)速度慢的問題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
基于php中echo用逗號(hào)和用點(diǎn)號(hào)的區(qū)別詳解
下面小編就為大家分享一篇基于php中echo用逗號(hào)和用點(diǎn)號(hào)的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-01-01
用PHP調(diào)用Oracle存儲(chǔ)過程的方法
php程序訪問數(shù)據(jù)庫(kù),完全可以使用存儲(chǔ)過程,有人認(rèn)為使用存儲(chǔ)過程便于維護(hù)。不過仁者見仁,智者見智,在這個(gè)問題上,偶認(rèn)為使用存儲(chǔ)過程意味著必須要dba和開發(fā)人員更緊密配合,如果其中一方更變,則顯然難以維護(hù)。2008-09-09
PHP Session變量不能傳送到下一頁(yè)的解決方法
在PHP中使用過SESSION的朋友可能會(huì)碰到這么一個(gè)問題,SESSION變量不能跨頁(yè)傳遞。這令我苦惱了好些日子,最終通過查資料思考并解決了這個(gè)問題。2009-11-11

