05.08.2016, 11:51
|
Профессор
|
|
Регистрация: 08.03.2016
Сообщений: 429
|
|
Добавление кук через функцию
Почему не создаются куки?
function addCookie(name, value){
console.log(document.cookie = 'name = value')
}
addCookie('city', 'moscow')
|
|
05.08.2016, 12:04
|
Профессор
|
|
Регистрация: 21.09.2015
Сообщений: 196
|
|
DivMan, 'name = value' - строка. Может так?
function addCookie(name, value){
console.log(document.cookie = [name, value])
}
addCookie('city', 'moscow');
|
|
05.08.2016, 21:48
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
То есть не
document.cookie = 'name = value'
а
document.cookie = name+'='+value
поскольку name и value перменные.
|
|
06.08.2016, 02:20
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от warren buffet
|
Это не пехепе, на клиенте куки - is a string
|
Это у тебя в пехепе куки произвольные, а у нормальных людей кука всегда и везде есть строка.
|
|
06.08.2016, 05:33
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
Это у тебя мозг произвольный, а на пехепе все куки парсятся на фронтире и доступны как обычный ассоциативный массив, а на клиенте все в куче и приходится парсить самому
load:function(sKey){
return decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*"
+ encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&")
+ "\\s*\\=\\s*([^;]*).*$)|^.*$"),"$1"))||null;
},
Последний раз редактировалось warren buffet, 06.08.2016 в 05:36.
|
|
06.08.2016, 11:15
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от warren buffet
|
а на пехепе все куки парсятся на фронтире
|
Несешь всякую хрень, контекст темы об установке кук. А требование для всех едины - строка, и для сервера тоже. Слишком крутой? Ну так загляни в исходник РНР и не пори херни. Хотя в твоем ПеХеПе все может и не так.
|
|
06.08.2016, 21:58
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Вариант:
function setCookie(a,b,c) {if(c){var d = new Date();d.setTime(d.getTime()+c);}if(a && b) document.cookie = encodeURIComponent(a)+'='+ encodeURIComponent(b)+';path=/' +(c ? '; expires='+d.toUTCString() : '');else return false;}
function getCookie(a) {var b = new RegExp(encodeURIComponent(a)+'=([^;]){1,}');var c = b.exec(document.cookie);if(c) c = c[0].split('=');else return false;return c[1] ? decodeURIComponent(c[1]) : false;}
function deleteCookie(a) {setCookie(a,"0",-100)}
var a = "Спичь о куках";
var b ="Ну так загляни в исходник РНР и не пори херни. Хотя в твоем ПеХеПе все может и не так.";
setCookie(a,b,10000) ; //Имя, Данные, время установки в миллисекундах(если ток на сессию, третий параметр опускаем
alert(getCookie(a))
Последний раз редактировалось Deff, 06.08.2016 в 22:00.
|
|
08.08.2016, 12:06
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
laimas,
Ну то есть тут все должно работать
Цитата:
|
document.cookie = 'name = value'
|
ибо куки везде строка.
|
|
08.08.2016, 12:40
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от warren buffet
|
ибо куки везде строка.
|
Кук нет ни в одном языке программирования, есть только методы/функции работы с ними. Куки есть только у браузера, он их пишет на диск, отсюда и требование строкового представления.
То что РНР разработчики облегчили жизнь "породив" удобную функцию и разработчик обязан превращать в строку только значение куки, не означает, что РНР отсылает серверу что вздумается. В недрах он вынужден делать тоже самое, что и написал Deff.
Разница существенная работы кук на клиенте и сервер только одна - кука установленная JS доступна сразу, а кука установленная сервером только после того как пользователь сделает переход или закроет страницу, так как только в это время браузер пишет куку в файл, до этого она хранится в памяти.
|
|
|
|