Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

use saved variable in cookie with php

Tags:

javascript

php

For last two weeks I was working on saving a page id in cookies and then retrieve it in some other page.

Finally I solved it but now I have some other problem I want to use this id (the one I saved in cookie and retrieve it) in my php code .

I know javascript is client side code and php is server side code but I have to do this. Please help me out with this.

This is my javascript code which is working great and I get the saved id with this line "+value.favoriteid+"

<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>
like image 538
Malekian Avatar asked Oct 18 '22 05:10

Malekian


2 Answers

Read cookie on php side it is easiest thing after you set them by js.

Any cookies sent to you from the client will automatically be included into a $_COOKIE auto-global array if variables_order contains "C". If you wish to assign multiple values to a single cookie, just add [] to the cookie name. Depending on register_globals, regular PHP variables can be created from cookies

Here php are some examples:

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

<?php
print_r($_COOKIE);
?>

It's not recommended to rely on them as this feature is often turned off for the sake of security.

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

like image 60
Maksym Semenykhin Avatar answered Oct 20 '22 23:10

Maksym Semenykhin


If you already managed to save to cookie in javascript, then it should be no problem to retrive it in PHP, just use $_COOKIE["COKKIE_NAME"] (Where you ofcourse change COOKIE_NAME, to the name of the cookie you saved in JS)..

Have a look at http://php.net/manual/en/features.cookies.php for more examples.

like image 40
Mathias_ Avatar answered Oct 21 '22 00:10

Mathias_