2017-02-16 3 views
0
// Set COOKIE 
$cookie_name = 'domain[user]'; 
$cookie_value = 'domain[id]'; 

// Cookie need to change right away after user press login 
setcookie($cookie_name,$sub_name,time()+(60*60*24),'/'); 
setcookie($cookie_value,$auth_id,time()+(60*60*24),'/'); 

// Forced cookie to exit after set 
$_COOKIE['domain']['user'] = $sub_name; 
$_COOKIE['domain']['id'] = $auth_id; 

Я устанавливаю свое доменное имя как это на php, но я хочу получить его с помощью JavaScript или jquery, но у меня проблемы с их получением.Получение информации о файлах cookie, но ничего не работает

вот что я пробовал.

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

var value = readCookie('domain["user"]'); 

alert(value); 

Как я могу получить информацию о своем файле cookie?

+3

ли печенье установить в качестве HTTPOnly? Если это так, вы не сможете получить доступ к нему внутри JavaScript. –

+0

попробуйте 'console.log (document.cookie);' посмотреть, не проблема ли с логикой 'readCookie' – Mojtaba

+0

fbm_229931260731834 = base_domain = .chris01.com ; fblo_229931260731834 = у; PHPSESSID = f1djg4brueiqkkqnkjiqj6s5q0; домен [пользователь] = администратор; домен [AUTHID] = ba981df7c9aa72ad461461ad524cca01049938f8869098b31065058e7fdaa7e65e3072f637d43c10ba51a5cd6f5ec77d0ccf4befc066320c686168d7638b57e3 –

ответ

0

Вы должны декодировать файл cookie перед его разбором.

Попробуйте это:

function readCookie(cname) { 
    var name = cname + "="; 
    var decodedCookie = decodeURIComponent(document.cookie); 
    //var decodedCookie = "fbm_229931260731834=base_domain=.chris01.com; fblo_229931260731834=y; PHPSESSID=f1djg4brueiqkkqnkjiqj6s5q0; domain[user]=admin; domain[authID]=ba981df7c9aa72ad461461ad524cca01049938f8869098b31065058e7fdaa7e65e3072f637d43c10ba51a5cd6f5ec77d0ccf4befc066320c686168d7638b57e3"; 
    var ca = decodedCookie.split(';'); 
    for(var i = 0; i <ca.length; i++) { 
     var c = ca[i]; 
     while (c.charAt(0) == ' ') { 
      c = c.substring(1); 
     } 
     if (c.indexOf(name) == 0) { 
      return c.substring(name.length, c.length); 
     } 
    } 
    return ""; 
} 

var value = readCookie("domain[user]"); 

alert(value); 

Пожалуйста, обратите внимание не называть имя куки, как это: readCookie('domain["user"]');

Вы должны назвать это так: readCookie("domain[user]");

Смежные вопросы