Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.08.2016, 11:51
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

Добавление кук через функцию
Почему не создаются куки?

function addCookie(name, value){
				 console.log(document.cookie = 'name = value')
			}

			addCookie('city', 'moscow')
Ответить с цитированием
  #2 (permalink)  
Старый 05.08.2016, 12:04
Профессор
Отправить личное сообщение для Manyasha Посмотреть профиль Найти все сообщения от Manyasha
 
Регистрация: 21.09.2015
Сообщений: 196

DivMan, 'name = value' - строка. Может так?
function addCookie(name, value){
	console.log(document.cookie = [name, value])
}
addCookie('city', 'moscow');
Ответить с цитированием
  #3 (permalink)  
Старый 05.08.2016, 21:45
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Это не пехепе, на клиенте куки - is a string containing a semicolon-separated list of all cookies (i.e. key=value pairs) - строка.

https://developer.mozilla.org/en-US/...ocument/cookie
Ответить с цитированием
  #4 (permalink)  
Старый 05.08.2016, 21:48
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

То есть не

document.cookie = 'name = value'

а

document.cookie = name+'='+value

поскольку name и value перменные.
Ответить с цитированием
  #5 (permalink)  
Старый 06.08.2016, 02:20
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от warren buffet
Это не пехепе, на клиенте куки - is a string

Это у тебя в пехепе куки произвольные, а у нормальных людей кука всегда и везде есть строка.
Ответить с цитированием
  #6 (permalink)  
Старый 06.08.2016, 05:33
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 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.
Ответить с цитированием
  #7 (permalink)  
Старый 06.08.2016, 11:15
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от warren buffet
а на пехепе все куки парсятся на фронтире
Несешь всякую хрень, контекст темы об установке кук. А требование для всех едины - строка, и для сервера тоже. Слишком крутой? Ну так загляни в исходник РНР и не пори херни. Хотя в твоем ПеХеПе все может и не так.
Ответить с цитированием
  #8 (permalink)  
Старый 06.08.2016, 21:58
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 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.
Ответить с цитированием
  #9 (permalink)  
Старый 08.08.2016, 12:06
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

laimas,

Ну то есть тут все должно работать

Цитата:
document.cookie = 'name = value'
ибо куки везде строка.
Ответить с цитированием
  #10 (permalink)  
Старый 08.08.2016, 12:40
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от warren buffet
ибо куки везде строка.
Кук нет ни в одном языке программирования, есть только методы/функции работы с ними. Куки есть только у браузера, он их пишет на диск, отсюда и требование строкового представления.
То что РНР разработчики облегчили жизнь "породив" удобную функцию и разработчик обязан превращать в строку только значение куки, не означает, что РНР отсылает серверу что вздумается. В недрах он вынужден делать тоже самое, что и написал Deff.

Разница существенная работы кук на клиенте и сервер только одна - кука установленная JS доступна сразу, а кука установленная сервером только после того как пользователь сделает переход или закроет страницу, так как только в это время браузер пишет куку в файл, до этого она хранится в памяти.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление, изменение, удаление данных через JS Арсений JustPuk Общие вопросы Javascript 2 27.04.2015 09:46
Как стереть значение input через функцию? qwe88 Элементы интерфейса 1 17.04.2015 18:31
Через ajax отправить много данных из таблицы на сервер Heger jQuery 3 29.08.2012 18:51
Эмулировать список через селект Nanto Элементы интерфейса 2 06.03.2012 11:54
XMLHTTPRequest передача имя через POST dds AJAX и COMET 0 14.08.2008 14:44