Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.12.2010, 04:11
Интересующийся
Отправить личное сообщение для Roman-NN Посмотреть профиль Найти все сообщения от Roman-NN
 
Регистрация: 01.06.2010
Сообщений: 10

зацикивются cookies в IE
Ума не приложу почему.

Корзина интернет магазина сохраняет id и количества товаров в кукисах браузера. Везде все отлично, кроме ослика - сначала работал, но с некоторых пор он просто игнорирует setCookie чем вводит меня в ступор. Выглядит так, будто его зацикливает на конкретном значении, то есть устанавливаешь новое значение, делаешь гет - возвращается старое(

Если очистить кукисы вручную, то он снова начинает работать исправно, но, через некоторое время, вновь берется за старое.

Я не сталкивался, но по-моему это похоже на превышение 4кб лимита, но я то пытаюсь сохранить всего 20-30 символов. С чем еще может быть связано подобное поведение ИЕ?

Прошу, развейте эту магию!

Как сохраняю и читаю куки (тестовый документ, на котором я надеялся ловить баг. Используется библиотечка с вашего сайта, из "10 лучших..."):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Cookie test</title>
<script type="text/javascript">
function getCookie(name) {
	var matches = document.cookie.match(new RegExp(
	  "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
	))
	return matches ? decodeURIComponent(matches[1]) : '' 
}

// уcтанавливает cookie
function setCookie(name, value, props) {
	props = props || {}
	var exp = props.expires
	if (typeof exp == "number" && exp) {
		var d = new Date()
		d.setTime(d.getTime() + exp*1000)
		exp = props.expires = d
	}
	if(exp && exp.toUTCString) { props.expires = exp.toUTCString() }

	value = encodeURIComponent(value)
	var updatedCookie = name + "=" + value
	for(var propName in props){
		updatedCookie += "; " + propName
		var propValue = props[propName]
		if(propValue !== true){ updatedCookie += "=" + propValue }
	}
	document.cookie = updatedCookie

}

// удаляет cookie
function deleteCookie(name) {
	setCookie(name, null, { expires: -1 })
}
</script>
</head>
<body>


<script>
	alert('Cookies test 2') 
	setCookie ('SSCart', '', {expires:120})
	 
	while (confirm('test = ' + getCookie('SSCart')))
	{
		setCookie ('SSCart', getCookie('SSCart') + '---------0', {expires:120})
	}
</script>


</body>
</html>


PS: проблема не только на моем ИЕ, другие тоже ее видят! я не псих!!!1
Ответить с цитированием
  #2 (permalink)  
Старый 07.01.2011, 20:21
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

Цитата:
/([\.$?*|{}\(\)\[\]\\\/\+^])/
что это за бред? набор символов..как оно скомпилилось ума неприложу
уберите все эти закорючки и все запуститься
Ответить с цитированием
  #3 (permalink)  
Старый 07.01.2011, 20:23
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

Matre, это регулярное выражение (RegExp)
Ответить с цитированием
  #4 (permalink)  
Старый 07.01.2011, 20:30
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

регулярные выражения??
вы случайно не троль?
несете какуюто ахинею.
реги я видел в perl, в malbolge и в php но в java script их нет!

если я ва с неубедил то почему не раьотает код:
print $my =~ s/123/456/g;
ну?
Ответить с цитированием
  #5 (permalink)  
Старый 07.01.2011, 20:34
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

Чувак, во первых malbolge эзотерический язык программирования, там нет регулярок, во вторых вот тебе реги в js, а не сработает приведённый код в js, потому что это код Perl.
P.s. Вот это на malbolge не регулярка:
Цитата:
(=<`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk**hKs_dG5[m_BA{?-Y;;Vb'rR5431M}/.zHGwEDCBA@98\6543W10/.R,+O<
Это программа Hello World))

Последний раз редактировалось Vulkan, 04.07.2011 в 09:24.
Ответить с цитированием
  #6 (permalink)  
Старый 07.01.2011, 20:38
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

Цитата:
malbolge эзотерический язык программирования, там нет регулярок
знаешь..есть там регулярки или нет не знает даже сам автор языка. так что будем считать что есть.

Цитата:
во вторых вот тебе реги в js
вы только что накатали эту статью и парите ссылку на нее,не обращайтесь со мной как с наивным 4летним ребенком

Цитата:
это код недо PHP какого-то...
это perl. если бы в js были реги то он бы работал
Ответить с цитированием
  #7 (permalink)  
Старый 07.01.2011, 20:55
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Matre,
слишком толсто.
в JS есть регулярные выражения.
Ответить с цитированием
  #8 (permalink)  
Старый 07.01.2011, 21:00
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

Цитата:
в JS есть регулярные выражения.
докажите!
вы весь вечер несете откровенную ахинею и ничего еще не аргументировали!
пркажите мне реги в js и я замолчу
Ответить с цитированием
  #9 (permalink)  
Старый 07.01.2011, 21:00
Интересующийся
Отправить личное сообщение для Roman-NN Посмотреть профиль Найти все сообщения от Roman-NN
 
Регистрация: 01.06.2010
Сообщений: 10

Против троллей эффективнее бана только игнор. Не обращайте внимания, профессор)

Вчера появился некоторый прогресс в моей проблеме: я начал удалять куку перед записью, т.е. вызывать deleteCookie(name) в начале функции setCookie. Полный бред, конечно, и танцы с бубном, но и сама проблема мистична, да и результат есть - в некоторых билдах ослика все стало работать как надо. Но в восьмом ie все же иногда проскальзывает эта трабла, а у заказчика как на зло именно этот браузер. Быть может есть мысли, из-за чего это может быть хотя бы теоретически?

Ума не приложу что происходит, я уже всеми известными проклятиями обругал мелкософт, скоро свои придумывать начну...
Ответить с цитированием
  #10 (permalink)  
Старый 07.01.2011, 21:02
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Matre
пркажите мне реги в js и я замолчу
вот в этом сообщении некий пользователь форума как раз использовал регулярные выражения
вытащить число из ссылки
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
javascript + cookies ETKartman Events/DOM/Window 7 15.03.2011 12:43
Создание cookies cyberx Общие вопросы Javascript 3 22.03.2010 21:59
Чтоб ссылка появлялась один раз для каждого пользователя (по IP или Cookies) Sequoia Общие вопросы Javascript 2 28.01.2010 19:16
Не сохраняется cookies в IE6,7 и Safari3 miller Javascript под браузер 1 21.10.2009 05:56
Передача массива JS в cookies Denis Общие вопросы Javascript 1 04.08.2009 12:24