|
在我未成熟的程序思考能力下,我首先否定了重寫程序這個方法,再次否定了將phpWind的驗證方法引入到最土的方法,最后想出一個折中的辦法,將兩張表的唯一ID相同:將phpWind用戶表設為主表,最土用戶表為外接表,讓最土用戶ID和phpWind用戶表UID一一對應,通過用戶ID來完成接下來的同步工作。
多話不說,上步驟。
第一步:用戶同步
新建phpWind用戶,最土同步相應用戶,最土ID對應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方式
去掉密碼,將驗證用戶名改成用戶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);
第四步:修改最土頁面連接
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 href="http://www.cnblogs.com/../login.php?action=quit&verify={$_COOKIE['SetOut']}">退出</a></li>
</ul>
<!--{else}-->
<ul class="links">
<li class="login"><a href="/../login.php">登錄</a></li>
<li class="signup"><a href="/../register.php">注冊</a></li>
</ul>
同步登錄成功,所有的登錄和退出全部在phpWind內進行,而最土只負責接受傳遞是否是空值來確認是否登錄。
php技術:PHPwind整合最土系統用戶同步登錄實現方法,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。