2016-12-15 79 views
0

在index.php中,我在jQuery中设置了一个会话变量,并且在此页面中获取了我的令牌ID,但我想将其显示在另一个页面(如home.php)中。所以我在home.php页面做如何创建会话变量并显示另一个页面

var val = $.session.get('Token'); 
    alert(); //**getting here undefined**.how can solve this issue please tell me any one 

(function($){ 
 

 
    $.session = { 
 

 
     _id: null, 
 

 
     _cookieCache: undefined, 
 

 
     _init: function() 
 
     { 
 
      if (!window.name) { 
 
       window.name = Math.random(); 
 
      } 
 
      this._id = window.name; 
 
      this._initCache(); 
 

 
      // See if we've changed protcols 
 

 
      var matches = (new RegExp(this._generatePrefix() + "=([^;]+);")).exec(document.cookie); 
 
      if (matches && document.location.protocol !== matches[1]) { 
 
       this._clearSession(); 
 
       for (var key in this._cookieCache) { 
 
        try { 
 
        window.sessionStorage.setItem(key, this._cookieCache[key]); 
 
        } catch (e) {}; 
 
       } 
 
      } 
 

 
      document.cookie = this._generatePrefix() + "=" + document.location.protocol + ';path=/;expires=' + (new Date((new Date).getTime() + 120000)).toUTCString(); 
 

 
     }, 
 

 
     _generatePrefix: function() 
 
     { 
 
      return '__session:' + this._id + ':'; 
 
     }, 
 

 
     _initCache: function() 
 
     { 
 
      var cookies = document.cookie.split(';'); 
 
      this._cookieCache = {}; 
 
      for (var i in cookies) { 
 
       var kv = cookies[i].split('='); 
 
       if ((new RegExp(this._generatePrefix() + '.+')).test(kv[0]) && kv[1]) { 
 
        this._cookieCache[kv[0].split(':', 3)[2]] = kv[1]; 
 
       } 
 
      } 
 
     }, 
 

 
     _setFallback: function(key, value, onceOnly) 
 
     { 
 
      var cookie = this._generatePrefix() + key + "=" + value + "; path=/"; 
 
      if (onceOnly) { 
 
       cookie += "; expires=" + (new Date(Date.now() + 120000)).toUTCString(); 
 
      } 
 
      document.cookie = cookie; 
 
      this._cookieCache[key] = value; 
 
      return this; 
 
     }, 
 

 
     _getFallback: function(key) 
 
     { 
 
      if (!this._cookieCache) { 
 
       this._initCache(); 
 
      } 
 
      return this._cookieCache[key]; 
 
     }, 
 

 
     _clearFallback: function() 
 
     { 
 
      for (var i in this._cookieCache) { 
 
       document.cookie = this._generatePrefix() + i + '=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 
 
      } 
 
      this._cookieCache = {}; 
 
     }, 
 

 
     _deleteFallback: function(key) 
 
     { 
 
      document.cookie = this._generatePrefix() + key + '=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 
 
      delete this._cookieCache[key]; 
 
     }, 
 

 
     get: function(key) 
 
     { 
 
      return window.sessionStorage.getItem(key) || this._getFallback(key); 
 
     }, 
 

 
     set: function(key, value, onceOnly) 
 
     { 
 
      try { 
 
       window.sessionStorage.setItem(key, value); 
 
      } catch (e) {} 
 
      this._setFallback(key, value, onceOnly || false); 
 
      return this; 
 
     }, 
 
     
 
     'delete': function(key){ 
 
      return this.remove(key); 
 
     }, 
 

 
     remove: function(key) 
 
     { 
 
      try { 
 
      window.sessionStorage.removeItem(key); 
 
      } catch (e) {}; 
 
      this._deleteFallback(key); 
 
      return this; 
 
     }, 
 

 
     _clearSession: function() 
 
     { 
 
      try { 
 
       window.sessionStorage.clear(); 
 
      } catch (e) { 
 
       for (var i in window.sessionStorage) { 
 
        window.sessionStorage.removeItem(i); 
 
       } 
 
      } 
 
     }, 
 

 
     clear: function() 
 
     { 
 
      this._clearSession(); 
 
      this._clearFallback(); 
 
      return this; 
 
     } 
 

 
    }; 
 

 
    $.session._init(); 
 

 
})(jQuery); 
 
    
 
// Here i am set session variable 
 

 
$.session.set('Token',"1") ; 
 
var get_session_name =$.session.get('Token'); 
 
alert(get_session_name);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

你为什么不使用一些lib或jQuery插件用饼干代替$ .session是一串代码工作?例如,https://github.com/js-cookie/js-cookie –

+0

为什么不只是使用标准会话cookie来存储和检索信息? –

+0

措辞,首都 – Mikkel

回答

0

您可以创建一个应包括在所有其他文件(家在一个文件(header.php文件)会话变量。在这种情况下,PHP)

所以,像这样的

的header.php创建会话

<?php 
    session_start(); 
    if (isset($_SESSION['username'])) { 
     // session already exists 
     echo "User ID:", $_SESSION['id'], "<br />" 
    } else { 
     // New PHP Session 

     $_SESSION['username'] = "loginprocess"; 
     $_SESSION['id'] = 444; 
    } 
?> 

可能home.php

<?php require "header.php"; ?> 
<!doctype html> 
<head></head> 
<body> 
<?php 
    if (isset($_SESSION["username"])) { 
     $loggenOnUser = $_SESSION["username"]; 
     echo "Existing User: ", $loggenOnUser, "<br />" 
    } else { 
     $loggenOnUser = " new user"; 
    } 
?> 
    ... 
     <div id="LoggedInUser" class="fluid "> 
      Hi. I'm <?php echo $loggenOnUser; ?> 
     </div> 

编辑:

尝试移动您的会话初始化代码要么的header.php或footer.php,包括在每一个其他PHP页面页眉和页脚,这将允许访问每个页面中的会话变量。

包含在其他页面,如标题和footer.php home.php这样的:

<?php require "header.php"; ?> 
. 
. 
//Body 
. 
. 
<?php require "footer.php"; ?> 
+0

我需要jQuery的,我有一个jQuery变量我需要设置会话该变量 –

相关问题