婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

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

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

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

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

1.準備兩個虛擬域名

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" >進入空間/a>
?php else: ?>
hello,?php echo $_SESSION['username']; ?>;a  rel="external nofollow" rel="external nofollow" >進入空間/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的設置

?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的文件內容如下

?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;
 }
}
?>

當在openpoor登錄后將session信息傳到其他域名下的文件下進行處理,以script標簽包含的形式進行運行。

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

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

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

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

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

您可能感興趣的文章:
  • 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關于IE下的iframe跨域導致session丟失問題解決方法
  • PHP簡單實現(xiàn)HTTP和HTTPS跨域共享session解決辦法
  • php實現(xiàn)多站點共用session實現(xiàn)單點登錄的方法詳解

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

巨人網絡通訊聲明:本文標題《PHP簡單實現(xiàn)單點登錄功能示例》,本文關鍵詞  PHP,簡單,實現(xiàn),單點,登錄,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP簡單實現(xiàn)單點登錄功能示例》相關的同類信息!
  • 本頁收集關于PHP簡單實現(xiàn)單點登錄功能示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 绵竹市| 司法| 明星| 金塔县| 民乐县| 郧西县| 确山县| 河西区| 海阳市| 日照市| 麻城市| 文昌市| 肥乡县| 台北县| 宝兴县| 增城市| 章丘市| 宁都县| 措美县| 安康市| 大悟县| 星子县| 阿合奇县| 浦江县| 庆阳市| 锦州市| 罗山县| 福泉市| 贵德县| 丰镇市| 西乌珠穆沁旗| 奇台县| 张家港市| 噶尔县| 禹城市| 嘉荫县| 会理县| 通州区| 江川县| 大悟县| 天水市|