如何从javascript获取cookie值并通过PHP设置它?

时间:2009-06-29 09:45:05

标签: php javascript cookies

我是cookie操作的新手

4 个答案:

答案 0 :(得分:5)

这适用于Javascript:

  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);
    }

这适用于php,setcookie

答案 1 :(得分:1)

用PHP读取cookie也很容易:

$ cookie_value = $ _COOKIE ['cookie_name'];

答案 2 :(得分:1)

我理解问题是如何检测浏览器和服务器端的Cookie功能?如何在两侧设置和读取Cookie?

所以答案是:

检测cookie可用性

在javaScript

首先,您检测到navigator.cookieEnabled启用的Cookie。如果是false,则您在document.cookie上设置Cookie以确保它不起作用。

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);
}

服务器侧

您只需阅读环境变量即可检测Cookie功能。 这是php脚本:

# start session
session_start();

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

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

这是perl脚本:

#!/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";    
}

双方获取,设置和更新cookie

在javaScript

经过验证的跨浏览器方式是使用jquery.cookie插件。

你包括脚本插件:

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

创建会话cookie:

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

阅读cookie:

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

在服务器端

PHP本身支持cookie操作。

要通过setcookie功能设置Cookie,请确保在使用之前启动sesssion

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

通过$_COOKIE变量

获取Cookie
$some_cookie = $_COOKIE['the_cookie'];

答案 3 :(得分:0)

您可以使用setcookie()方法使用php设置Cookie。

至于通过javascript检索cookie值,请参阅关于Javascript Cookie操作的W3 Schools教程。