濮阳杆衣贸易有限公司

主頁 > 知識庫 > PHP簡單實現(xiàn)單點登錄功能示例

PHP簡單實現(xiàn)單點登錄功能示例

熱門標(biāo)簽:四川保險智能外呼系統(tǒng)供應(yīng)商 電話機器人銷售主要負(fù)責(zé)什么 長沙做地圖標(biāo)注公司 遼寧ai電銷機器人價格 福建銀行智能外呼系統(tǒng)價格 房產(chǎn)中介用的是什么外呼系統(tǒng) 地圖標(biāo)注專員怎么樣 上海做外呼線路的通信公司 寧波外呼營銷系統(tǒng)

本文實例講述了PHP簡單實現(xiàn)單點登錄功能。分享給大家供大家參考,具體如下:

1.準(zhǔn)備兩個虛擬域名

127.0.0.1  www.openpoor.com
127.0.0.1  www.myspace.com

2.在openpoor的根目錄下創(chuàng)建以下文件

index.PHP

?php
session_start();
?>
!DOCTYPE html>
html>
head>
meta charset="UTF-8"/>
title>sync login/title>
/head>
body>
?php if(empty($_SESSION['username'])):?>
hello,游客;請先a href="login.php" rel="external nofollow" >登錄/a>a  rel="external nofollow" rel="external nofollow" >進(jìn)入空間/a>
?php else: ?>
hello,?php echo $_SESSION['username']; ?>;a  rel="external nofollow" rel="external nofollow" >進(jìn)入空間/a>
?php endif; ?>
 a  rel="external nofollow" >home/a>
/body>
/html>

login.php

?php
session_start();
if(!empty($_POST['username'])){
 require '../Des.php';
 $_SESSION['username'] = $_POST['username'];
 $redirect = 'http://www.openpoor.com/index.php';
 header('Location:http://www.openpoor.com/sync.php?redirect='.urlencode($redirect).'code='.Des::encrypt($_POST['username'],'openpoor'));exit;
}
?>
!DOCTYPE html>
html>
head>
meta charset="UTF-8"/>
title>sync login/title>
/head>
body>
form action="" method="post">
 input type="text" name="username" placeholder="用戶名"/>
 input type="text" name="password" placeholder="密碼"/>
 input type="submit" value="登錄"/>
/form>
/body>
/html>

sync.php

?php
$redirect = empty($_GET['redirect']) ? 'www.openpoor.com' : $_GET['redirect'];
if(empty($_GET['code'])){
 header('Loaction:http://'.urldecode($redirect));
 exit;
}
$apps = array(
 'www.myspace.com/slogin.php'
);
?>
!DOCTYPE html>
html>
head>
meta charset="UTF-8"/>
?php foreach($apps as $v): ?>
script type="text/javascript" src="http://?php echo $v.'?code='.$_GET['code'] ?>">/script>
?php endforeach; ?>
title>passport/title>
/head>
body>
script type="text/javascript">
window.onload=function(){
 location.replace('?php echo $redirect; ?>');
}
/script>
/body>
/html>

3.在myspace的根目錄下創(chuàng)建如下文件

slogin文件 完成session的設(shè)置

?php
session_start();
header('Content-Type:text/javascript; charset=utf-8');
if(!empty($_GET['code'])){
 require '../Des.php';
 $username = Des::decrypt($_GET['code'],'openpoor');
 if(!empty($username)){
  header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
  $_SESSION['username'] = $username;
 }
}
?>

index.php

?php
session_start();
if(!empty($_SESSION['username']))
{
  echo "歡迎來到".$_SESSION['username']."的空間";
}else{
  echo "請先登錄";
}
?>

4.Des.php的文件內(nèi)容如下

?php
/**
 *@see Yii CSecurityManager;
 */
class Des{
 public static function encrypt($data,$key){
   $module=mcrypt_module_open('des','', MCRYPT_MODE_CBC,'');
   $key=substr(md5($key),0,mcrypt_enc_get_key_size($module));
   srand();
   $iv=mcrypt_create_iv(mcrypt_enc_get_iv_size($module), MCRYPT_RAND);
   mcrypt_generic_init($module,$key,$iv);
   $encrypted=$iv.mcrypt_generic($module,$data);
   mcrypt_generic_deinit($module);
   mcrypt_module_close($module);
   return md5($data).'_'.base64_encode($encrypted);
 }
 public static function decrypt($data,$key){
   $_data = explode('_',$data,2);
   if(count($_data)2){
  return false;
   }
   $data = base64_decode($_data[1]);
   $module=mcrypt_module_open('des','', MCRYPT_MODE_CBC,'');
   $key=substr(md5($key),0,mcrypt_enc_get_key_size($module));
   $ivSize=mcrypt_enc_get_iv_size($module);
   $iv=substr($data,0,$ivSize);
   mcrypt_generic_init($module,$key,$iv);
   $decrypted=mdecrypt_generic($module,substr($data,$ivSize,strlen($data)));
   mcrypt_generic_deinit($module);
   mcrypt_module_close($module);
   $decrypted = rtrim($decrypted,"\0");
   if($_data[0]!=md5($decrypted)){
  return false;
   }
   return $decrypted;
 }
}
?>

當(dāng)在openpoor登錄后將session信息傳到其他域名下的文件下進(jìn)行處理,以script標(biāo)簽包含的形式進(jìn)行運行。

5.此時訪問www.openpoor.com和www.myspace.com都是未登錄狀態(tài)

登錄后兩個域名下都是登錄狀態(tài)

到此我們實現(xiàn)了一個簡單的單點登錄。

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP+MySQL會員系統(tǒng)開發(fā)專題》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計算法總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP常用遍歷算法與技巧總結(jié)》及《PHP數(shù)學(xué)運算技巧總結(jié)》

希望本文所述對大家PHP程序設(shè)計有所幫助。

您可能感興趣的文章:
  • php的sso單點登錄實現(xiàn)方法
  • php實現(xiàn)的SSO單點登錄系統(tǒng)接入功能示例分析
  • SSO單點登錄的PHP實現(xiàn)方法(Laravel框架)
  • PHP實現(xiàn)cookie跨域session共享的方法分析
  • ThinkPHP框架實現(xiàn)session跨域問題的解決方法
  • php中http與https跨域共享session的解決方法
  • PHP關(guān)于IE下的iframe跨域?qū)е聅ession丟失問題解決方法
  • PHP簡單實現(xiàn)HTTP和HTTPS跨域共享session解決辦法
  • php實現(xiàn)多站點共用session實現(xiàn)單點登錄的方法詳解

標(biāo)簽:宜春 工商登記 澳門 常德 深圳 延安 宿遷 佛山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP簡單實現(xiàn)單點登錄功能示例》,本文關(guān)鍵詞  PHP,簡單,實現(xiàn),單點,登錄,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP簡單實現(xiàn)單點登錄功能示例》相關(guān)的同類信息!
  • 本頁收集關(guān)于PHP簡單實現(xiàn)單點登錄功能示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    廊坊市| 田东县| 滕州市| 三原县| 武川县| 大化| 扶风县| 中超| 龙州县| 方正县| 凤冈县| 乌拉特前旗| 诸城市| 喀喇| 搜索| 瓦房店市| 团风县| 靖边县| 慈溪市| 昌都县| 新营市| 桂平市| 浦北县| 南华县| 得荣县| 红原县| 阳江市| 竹山县| 杭锦后旗| 安徽省| 南平市| 柳河县| 榆林市| 郓城县| 汤原县| 左贡县| 漯河市| 措美县| 大同市| 固阳县| 睢宁县|