乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      session的跨域共享

       丶平上 2016-12-30
      常用跨域共用session的是登錄模塊,我相信很多開發(fā)的朋友的都遇到過,只需要一個地方登錄,相關(guān)聯(lián)的網(wǎng)站也是處于登錄狀態(tài)。兩種情況:一種9streets.cn和a.9streets.cn之間,另一種是 之間,這幾天總結(jié)了一下處理方法。
      方式一:
          在一,二級域名下調(diào)用如下代碼:    
      <?php    
          include("DBsession.php");    
          $_SESSION['usssser_oke'] = 'xxssssss';    
          $_SESSION['user_oke'] = 'xxsss';      
      ?>  


      DBsession.php


          <?php    
          /**  
            
          /**  直接引用api QQ登錄的session寫法,配置相關(guān)配置才行哈
           * 設(shè)置session配置   
           */    
              
          /**  
           * CREATE TABLE `tbl_session` (  
           *     `session_id` varchar(255) binary NOT NULL default '',  
           *     `session_expires` int(10) unsigned NOT NULL default '0',  
           *     `session_data` text,  
           *     PRIMARY KEY  (`session_id`)  
           *    ) ENGINE=MyISAM;  
           */    
              
          class Session     
          {    
              //mysql的主機地址    
              const db_host = "localhost"; //需要第三方指定ip地址     
              
              //數(shù)據(jù)庫用戶名    
              const db_user = "root";   //需要第三方指定自己的用戶名    
              
              //數(shù)據(jù)庫密碼    
              const db_pwd = ""; //需要第三方指定自己的庫據(jù)庫密碼    
              
              //數(shù)據(jù)庫    
              const db_name = "thinkphp";      //需要第三方指定數(shù)據(jù)庫    
              
              //數(shù)據(jù)庫表    
              const db_table = "tbl_session"; //需要第三方指定數(shù)據(jù)表    
              
              //mysql-handle    
              private $db_handle;    
              
              //session-lifetime    
              private $lifeTime;    
              
              function open($savePath, $sessName)     
              {    
                  // get session-lifetime    
                  $this->lifeTime = get_cfg_var("session.gc_maxlifetime");    
              
                  // open database-connection    
                  $db_handle = @mysql_connect(self::db_host, self::db_user, self::db_pwd);    
              
                  $dbSel = @mysql_select_db(self::db_name, $db_handle);    
              
                  // return success    
                  if(!$db_handle || !$dbSel)    
                      return false;    
              
                  $this->db_handle = $db_handle;    
                  return true;    
              }    
              
              function close()     
              {    
                  $this->gc(ini_get('session.gc_maxlifetime'));    
                  // close database-connection    
                  return @mysql_close($this->db_handle);    
              }    
              
              function read($sessID)     
              {    
                  // fetch session-data    
                  $res = @mysql_query("SELECT session_data AS d FROM ".self::db_table."   
                      WHERE session_id = '$sessID'  
                      AND session_expires > ".time(), $this->db_handle);    
              
                  // return data or an empty string at failure    
                  if($row = @mysql_fetch_assoc($res))    
                      return $row['d'];    
              
                  return "";    
              }    
              
              function write($sessID, $sessData)     
              {    
                  // new session-expire-time    
                  $newExp = time() + $this->lifeTime;    
              
                  // is a session with this id in the database?    
                  $res = @mysql_query("SELECT * FROM ".self::db_table."   
                      WHERE session_id = '$sessID'", $this->db_handle);    
              
                  // if yes,    
                  if(@mysql_num_rows($res))     
                  {    
                      // ...update session-data    
                      @mysql_query("UPDATE ".self::db_table."   
                          SET session_expires = '$newExp',  
                          session_data = '$sessData'  
                          WHERE session_id = '$sessID'", $this->db_handle);    
              
                      // if something happened, return true    
                      if(@mysql_affected_rows($this->db_handle))    
                          return true;    
                  }    
                  else // if no session-data was found,    
                  {    
                      // create a new row    
                      @mysql_query("INSERT INTO ".self::db_table." (  
                          session_id,  
                          session_expires,  
                          session_data)  
                          VALUES(  
                              '$sessID',  
                              '$newExp',  
                              '$sessData')", $this->db_handle);    
                      // if row was created, return true    
                      if(@mysql_affected_rows($this->db_handle))    
                          return true;    
                  }    
              
                  // an unknown error occured    
                  return false;    
              }    
              
              function destroy($sessID)     
              {    
                  // delete session-data    
                  @mysql_query("DELETE FROM ".self::db_table." WHERE session_id = '$sessID'", $this->db_handle);    
              
                  // if session was deleted, return true,    
                  if(@mysql_affected_rows($this->db_handle))    
                      return true;    
              
                  // ...else return false    
                  return false;    
              }    
              
              function gc($sessMaxLifeTime)     
              {    
                  // delete old sessions    
                  @mysql_query("DELETE FROM ".self::db_table." WHERE session_expires < ".time(), $this->db_handle);    
              
                  // return affected rows    
                  return @mysql_affected_rows($this->db_handle);    
              }    
          }    
              
          /**  
           * 指定session有效的域名  
           * ini_set("session.cookie_domain", ".domain.com");  
           * .domain.com是站點的主域名,請注意前面?zhèn)€有一個'.'  
           */    
          define("MAIN_DOMAIN", ".ichezone.com");   //設(shè)置主域名    
              
          /**  
           * 不同子域名下共享session信息  
           * COOKIE_DOMAIN = false 禁止該功能  
           * COOKIE_DOMAIN = true  啟用該功能  
           * 默認禁止  
           * 開啟前提需要定義MAIN_DOMAIN常量  
           */    
          define("COOKIE_DOMAIN", true);     
          if (defined("COOKIE_DOMAIN") && COOKIE_DOMAIN)    
          {    
              if (defined("MAIN_DOMAIN"))    
                  @ini_set("session.cookie_domain", MAIN_DOMAIN);    
          }    
              
          /**  
           * 同一個主域名,不同服務(wù)器之間共享session信息  
           * USER_SESSION = false 禁用該功能  
           * USER_SESSION = true  啟用該功能  
           * 默認禁止  
           * 開啟前提需要建立mysql數(shù)據(jù)表  
           */    
           ini_set('session.name', 'phpsessid');//設(shè)置色session id的名字    
          define("USER_SESSION", true);    
          if (defined("USER_SESSION") && USER_SESSION)    
          {    
              @ini_set("session.save_handler", "user");    
              $session = new Session;    
              @session_module_name("user");    
              @session_set_save_handler(    
                  array(&$session, "open"),    
                  array(&$session, "close"),    
                  array(&$session, "read"),    
                  array(&$session, "write"),    
                  array(&$session, "destroy"),    
                  array(&$session, "gc"));    
          }    
          //@ini_set("session.save_path", dirname(__file__)."/tmp");    
          //@session_id("demo");    
          //ini_set("session.save_path",dirname(__file__)."/tmp");    
          session_start();
          include("DBsession.php");    
          $_SESSION['usssser_oke'] = 'xxssssss';    
          $_SESSION['user_oke'] = 'xxsss';     
          ?>   


      方式二:
      PHP Code復(fù)制內(nèi)容到剪貼板

          <?php  
          ini_set('session.name', 'sid');//設(shè)置色session id的名字  
          ini_set('session.use_trans_sid', 0);//不使用 GET/POST 變量方式  
          ini_set('session.use_cookies', 1);//使用 COOKIE 保存 SESSION ID 的方式  
          ini_set('session.cookie_path', '/');  
          ini_set('session.cookie_domain', '.ichezone.com');//多主機共享保存 SESSION ID 的 COOKIE,注意此處域名為一級域名  
          session_start();  
          $_SESSION['usssser_oke'] = 'xxssssss';  
          $_SESSION['user_oke'] = 'xxsss';    
          ?>  

      第三種方式:
      PHP Code復(fù)制內(nèi)容到剪貼板

          一級域名:  
          session_start();  
          setcookie("session_id",session_id(),time()+3600*24*365*10,"/",".ichezone.com");  
           $_SESSION['user_name'] = '梁山良民';  
          二級域名:  
          session_id($_COOKIE['session_id']);  
          session_start();  
          $_SESSION['user_sssme'] = 222222;  

      第四種方式:
      PHP Code復(fù)制內(nèi)容到剪貼板

          一級域名:  
          ini_set("session.cookie_domain",'.ichezone.com');//注:該參數(shù)必須在sesson_start()之上,否則將不會生效  
          session_start();  
          $_SESSION['user_name'] = '梁山www良民';  
          二級域名:  
          ini_set("session.cookie_domain",'.ichezone.com');//注:該參數(shù)必須在sesson_start()之上,否則將不會生效  
          session_start();  
          $_SESSION['user_nassse'] = '梁山www良民';   

      第五種方式:

      采用的p3p技術(shù),實現(xiàn)原理,在訪問網(wǎng)站x.com的時候,y.com程序觸發(fā)y.com文件的寫入sessionid值,sessionid值便可以獲取,然后把seesion值存入數(shù)據(jù)庫,取相同的sessionid值便可。這就要求y.com里面的程序文件必需能跨域訪問,默認情況下,瀏覽器是不能跨域設(shè)置cookie的,加上p3p頭后才行。在對應(yīng)php文件加上:
       
      PHP Code復(fù)制內(nèi)容到剪貼板

          header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');   


       

      這里直接引用網(wǎng)上的一篇博文了:

          127.0.0.1        www.  
          127.0.0.1        www.  
            
          首先:創(chuàng)建 a_setcookie.php 文件,內(nèi)容如下:  
            
          <?php  
          header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');  
          setcookie("test", $_GET['id'], time()+3600, "/", ".");  
          ?>  
            
          然后:創(chuàng)建 a_getcookie.php 文件,內(nèi)容如下:  
            
          <?php  
          var_dump($_COOKIE);  
          ?>  
            
          最后:創(chuàng)建 b_setcookie.php 文件,內(nèi)容如下:  
            
          <script src="http://www./a_setcookie.php?id=www."></script>  
            
          ----------------------------  
            
          三個文件創(chuàng)建完畢后,我們通過瀏覽器依次訪問:  
            
          http://www./b_setcookie.php  
          http://www./a_getcookie.php  
            
          我們會發(fā)現(xiàn),在訪問域的時候,我們并沒有在域設(shè)置上cookie值。去掉重新訪問兩文件設(shè)置成功

       

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多