javascript bir çerez değeri almak ve PHP bunu ayarlamak nasıl?

4 Cevap php

Ben çerez işlemleri yeniyim

4 Cevap

Javascript için bu:

  function createCookie( name,value,days) 
    {
        if ( days) 
        {
        	var date = new Date( );
        	date.setTime( date.getTime( )+( days*24*60*60*1000));
        	var expires = "; expires="+date.toGMTString( );
        }
        else var expires = "";
        document.cookie = name+"="+value+expires+"; path=/";
    }

    function readCookie( name) 
    {
        var nameEQ = name + "=";
        var ca = document.cookie.split( ';');
        for( var i=0;i < ca.length;i++) 
        {
        	var c = ca[i];
        	while ( c.charAt( 0)==' ') c = c.substring( 1,c.length);
        	if ( c.indexOf( nameEQ) == 0) return c.substring( nameEQ.length,c.length);
        }
        return null;
    }

    function eraseCookie( name) 
    {
        createCookie( name,"",-1);
    }

Ve bu php için, setcookie

PHP bir çerez okuma da kolaydır:

$ Cookie_value = $ _COOKIE ['COOKIE_name'];

Anlıyorum soru how to detect cookie feature on browser and server side? ve how to set and read a cookie on both side?

Yani burada cevap gider:

Detect the cookie availability

In javaScript

Önce navigator.cookieEnabled etkinleştirilmiş bilgisini algılar. Eğer varsa false, o zaman emin çalışmıyor yapmak için document.cookie bir çerez ayarlayın.

function are_cookies_enabled()
{
  var cookieEnabled = (navigator.cookieEnabled) ? true : false;

  if (typeof navigator.cookieEnabled == "undefined" && !cookieEnabled)
  { 
    document.cookie="testcookie";
    cookieEnabled = (document.cookie.indexOf("testcookie") != -1) ? true : false;
  }
  return (cookieEnabled);
}

Server-side

You just read the environment variable to detect the cookie feature. Here is the php script:

# start session
session_start();

# create constant
define("IS_COOKIES",count($_COOKIE)? true:false);

# example of using constant
if(IS_COOKIES){
   # do something cookie related
}

İşte perl script:

#!/usr/bin/perl -w

print "Content-Type: text/plain\n\n";

if( !defined( $ENV{'HTTP_COOKIE'} ) )
{
    print "You have cookies DISABLED";
}
else
{
    print "You have cookies ENABLED";    
}

Get, set and update cookie on both side

In javaScript

Kanıtladı cross-browser yol jquery.cookie eklentisi kullanmaktır.

YOu komut eklentisi şunlardır:

<script src="/path/to/jquery.cookie.js"></script>

Bir oturum çerezi oluşturmak için:

$.cookie('the_cookie', 'the_value');

Bir çerez okumak için:

var cookie_value = $.cookie('the_cookie'); // => 'the_value'

On server-side

PHP çerez manipülasyon için yerel destek var.

setcookie fonksiyonu sayesinde bir çerez ayarlamak için, kullanmadan önce emin sesssion başlangıç ​​yapmak:

session_start();
setcookie('the_cookie','value');

$_COOKIE değişkeni ile bir çerez almak için

$some_cookie = $_COOKIE['the_cookie'];