使用php中的cookie保存变量

时间:2016-07-14 07:46:49

标签: javascript php

过去两周,我一直致力于在Cookie中保存页面ID,然后在其他页面中检索它。

最后我解决了它,但现在我还有其他问题我想在我的PHP代码中使用这个id(我在cookie中保存并检索它)。

我知道javascript是客户端代码而php是服务器端代码,但我必须这样做。这个你能帮我吗。

这是我的javascript代码,效果很好,我用这行" + value.favoriteid +"

获得已保存的ID



<script>
   /*
  * Create cookie with name and value.
  * In your case the value will be a json array.
  */
  function createCookie(name, value, days) {
    var expires = '',
    date = new Date();
    if (days) {
      date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
      expires = '; expires=' + date.toGMTString();
    }
    document.cookie = name + '=' + value + expires + '; path=/';
  }
  /*
  * Read cookie by name.
  * In your case the return value will be a json array with list of pages saved.
  */
  function readCookie(name) {
    var nameEQ = name + '=',
    allCookies = document.cookie.split(';'),
    i,
    cookie;
    for (i = 0; i < allCookies.length; i += 1) {
      cookie = allCookies[i];
      while (cookie.charAt(0) === ' ') {
        cookie = cookie.substring(1, cookie.length);
      }
      if (cookie.indexOf(nameEQ) === 0) {
        return cookie.substring(nameEQ.length, cookie.length);
      }
    }
    return null;
  }
  function eraseCookie(name) {
    createCookie(name,"",-1);
}
    var faves = new Array();
$(function(){
    var favID;
    var query = window.location.search.substring(1);

	var vars = query.split("&");
    for (var i=0;i<vars.length;i++) {
        var pair = vars[i].split("=");
        var favID = (pair[0]=='ID' ? pair[1] :1)
//alert(favID);
	}
	$(document.body).on('click','#addTofav',function(){
    var fav = {'favoriteid':favID};
    faves.push(fav);
	var stringified = JSON.stringify(faves);
    createCookie('favespages', stringified);
    location.reload();
	});
  var myfaves = JSON.parse(readCookie('favespages'));
    if(myfaves){
    faves = myfaves;
    } else {
    faves = new Array();
    }
    $.each(myfaves,function(index,value){
      var element = '<li class="'+index+'"><h4>'+value.favoriteid+'</h4>   ';
      $('#appendfavs').append(element);
    });

});
 </script>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:2)

php方面阅读Cookie,在js设置之后,这是最容易的事情。

  

将自动包含从客户端发送给您的任何Cookie   如果variables_order包含&#34; C&#34;,则进入$ _COOKIE自动全局数组。如果   您希望为单个cookie分配多个值,只需添加[]即可   cookie名称。   根据register_globals,可以创建常规PHP变量   来自cookies

这里有一些例子:

<?php 
echo $_COOKIE["your cookie name"];
?>

<?php
print_r($_COOKIE);
?>
  

不建议依赖它们   为了安全起见,通常会关闭此功能。

http://php.net/manual/en/features.cookies.php

答案 1 :(得分:1)

如果你已经设法在javascript中保存到cookie,那么在PHP中检索它应该没问题,只需使用$_COOKIE["COKKIE_NAME"](你在哪里更改COOKIE_NAME,到你在JS中保存的cookie的名称) )..

有关更多示例,请查看http://php.net/manual/en/features.cookies.php