我们可以使用javascriopt检索和设置PHP cookie吗

我们可以使用javascriopt检索和设置PHP cookie吗,php,javascript,redirect,cookies,Php,Javascript,Redirect,Cookies,我用PHP设置了一个cookie setcookie("redirect", $this->currentPage(), time() + 31536000); 但我想在单击某个链接时使用javascript检索此cookie的值。我该怎么做呢?是的,这是可能的 尝试以下方法读取cookie: function getCookie(c_name) { var i,x,y,ARRcookies=document.cookie.split(";"); for (i=0;i

我用PHP设置了一个cookie

setcookie("redirect", $this->currentPage(), time() + 31536000);  
但我想在单击某个链接时使用javascript检索此cookie的值。我该怎么做呢?

是的,这是可能的

尝试以下方法读取cookie:

function getCookie(c_name) {
    var i,x,y,ARRcookies=document.cookie.split(";");
    for (i=0;i<ARRcookies.length;i++) {
       x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
       y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
       x=x.replace(/^\s+|\s+$/g,"");
       if (x==c_name){
         return unescape(y);
       }
    }
 }

// get cookie foo
var foo = getCookie('foo');

Cookie不是特定于PHP的,它们是特定于浏览器的,可以从PHP和Javascript中放置。要获得一个简单的解决方案,您可以查看另一个更容易理解的方法

此外,由于Cookie是经过编码的(键和值),因此您需要同时对它们进行解码

var getCookie = function(name) {

    var thisCookie,
        keyValuePair,
        key,
        value,
        cookies = document.cookie.split('; ') ;

    for ( var i=0 ; i<cookies.length ; i++ ) {
        thisCookie = cookies[i] ; 
        keyValuePair = thisCookie.split('=') ; 
        key = decodeURIComponent(keyValuePair[0]) ; 
        if ( key === name ) { 
            value = keyValuePair[1] ; 
            return (value != null) ? decodeURIComponent(value) : null;
        }
    }
}
在任何情况下,一旦有了链接,单击链接时如何获取值:

var getCookieOnLinkClick = function() {
    var cookieValue = getCookie('cookieName') ;
    console.log('Cookie value is ', cookieValue) ; 
} 

link.addEventListener('click', getCookieOnLinkClick) ;

(当然,大多数链接都会加载一个新页面,因此一旦获得cookie值,您就没有太多时间来处理它。)

错误的概念。Cookie存储在浏览器中。PHP通过HTTP请求和响应获取/设置浏览器cookie。因此,PHP和浏览器JS都可以操作相同的cookie。

document.cookie
将所有cookie作为键值对,由
分隔(例如,
key1=value1;key2=value2
)。您可以解析此字符串以获得所需的cookie。无论如何,我不会代替你写代码。代码请参见。OP想要读取cookie,他已经将其设置为PHP@HamZaDzCyberDeV谢谢!:)
var link = document.querySelector('A') ;
var getCookieOnLinkClick = function() {
    var cookieValue = getCookie('cookieName') ;
    console.log('Cookie value is ', cookieValue) ; 
} 

link.addEventListener('click', getCookieOnLinkClick) ;