Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Куки чистяться после закрытия всех окон FF. 
V
    Опции темы
Innuendo
Дата 8.4.2006, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: 2
Всего: 6



Работа с куками. Есть матрицы- двумерные массивы. Сохранение происходит путём загона матрицы в стринг и стринг в куку. Загрузка это считка стринка с куки, и перегона в массив.
Всё работает идеально. Только вот я щас заметил, что когда все окна FireFox закрываю, то куки потераются, и записи пусты. Как это предотвратить?

Вот пример функция загрузки/сохранения:
Код

/*        ***************** GENERAL FUNCTIONS WITH COOKIES  *********************  */
function setCookie(name, value, expiredays, path, domain, secure) { // установка кука
    var todayDate = new Date();
    todayDate.setDate(todayDate.getDate() + expiredays);
    var cdata = name+"="+escape(value)+
       ((expiredays)? "; expires=" + todayDate.toGMTString() : "")+
       ((path)? "; path=" + path : "")+
       ((domain)? "; domain=" + domain : "")+
       ((secure)? "; secure" : "");
    document.cookie = cdata;
}
function getCookie (name) { //получение кука
    var prefix = name + "=";
    var cookieStartIndex = document.cookie.indexOf(prefix);
    if (cookieStartIndex == -1) return null;
    var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length);
    if (cookieEndIndex == -1) cookieEndIndex = document.cookie.length;
    return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
} 
function deleteCookie (name, path, domain) { //удаление кука
    if (getCookie(name)) {
        document.cookie = name + "=" + 
        ((path) ? "; path=" + path : "") + 
        ((domain) ? "; domain=" + domain : "") + "; expires=Thu, 01-Jan-99 00:00:01 GMT" 
    }
}
/*        ***************** END-Main Functions With Cookies-END ********************  */

function myLoad(){
if (getCookie('record'+ChosenRecord)){
var _temp = getCookie('record'+ChosenRecord);
document.getElementById("loadMatrix").value = _temp;
document.getElementById(ChosenRecord).firstChild.style.color="black";
} else {
alert('Запись пуста');
document.location.href=document.location.href;
}
document.getElementById("flashLogo").style.visibility="hidden"
build();
}
function matrixSave(){
var _records =  getCookie('records');
if (!_records)  {
_records=0; setCookie('records','0','+10y');
}
if (_records==10) {
RemAll();
} else {
var beta = Number(_records)+1;
var CookieName = 'record'+beta;
setCookie(CookieName,matrixForSave,'+10y');
setCookie('records',beta,'+10y');
alert('Матрица успешна сохранена');
}
}



Это сообщение отредактировал(а) Innuendo - 8.4.2006, 21:24


--------------------
=)
PM MAIL ICQ Jabber   Вверх
sergejzr
Дата 8.4.2006, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Строчка 6

Код

((expiredays)? "; expires=" + todayDate.toGMTString() : "")+

там надо чтонибудь побольше, чем todayDate поставить.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Innuendo
Дата 8.4.2006, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: 2
Всего: 6



а почему оно так?
к примеру я сохранил матрицу, могу её загрузить. Закрываю браузер, открываю опять, и её уже нету smile
Проходят считанные минуту, а он уже чистит при закрытии smile

Это сообщение отредактировал(а) Innuendo - 8.4.2006, 21:53


--------------------
=)
PM MAIL ICQ Jabber   Вверх
sergejzr
Дата 8.4.2006, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Посмотри формат в котором дата в куках должна стоять. expires задаёт время жизни куки. Если он не указан или браузер не может разобрать, что там, то кука действует только на время открытой страницы.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Innuendo
Дата 8.4.2006, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: 2
Всего: 6



ага, понял... щас поколдую smile


--------------------
=)
PM MAIL ICQ Jabber   Вверх
Innuendo
Дата 8.4.2006, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: 2
Всего: 6



ошибку бы вроде нашел.
Код

((expiredays)? "; expires=" + todayDate.toGMTString() : "")+  //6-ая строка.

Если это использовать то надо задавать expire в кол-ве дней:
Код

_records=0; setCookie('records','0','100'); //строка 44

выбрал 100 дней и всё равно.

Вот мой черновик(чисто страница теста этого дела с куками, отдельно от всей программы):
в текстареу заводим что-то: он сохраняет. МОжно загрузить нажав на запись, и потмо лоад, или внизу на одну из пяти кнопок взависимости от номера записи.
http://xthost.info/ggg/cookiestest.html

помогите плз smile мне работу надо сдалть до конца недели с работающей функцией загрузки/сохранения)

Это сообщение отредактировал(а) Innuendo - 8.4.2006, 22:44


--------------------
=)
PM MAIL ICQ Jabber   Вверх
sergejzr
Дата 8.4.2006, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Цитата(Innuendo @ 8.4.2006, 20:43 Найти цитируемый пост)
Если это использовать то надо задавать expire в кол-ве дней:

Это ты где прочитал? smile smile

Вот так должно сработать:
Код

n=10*24*60*60*1000 // 10 дней куки проживут короче

var expiration = new Date(); //берём "сейчас"
expiration.setTime(expiration.getTime() + n); //и прибавляем время, которое куки должны жить


// твой код

// и, наконец:
"; expires=" + expiration.toGMTString();



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Innuendo
Дата 8.4.2006, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: 2
Всего: 6



Цитата(sergej.z @ 8.4.2006, 23:18 Найти цитируемый пост)
Это ты где прочитал? smile smile

в этом топике:
http://forum.vingrad.ru/index.php?showtopic=23902

Это версия GoodBoy'a, она мне больше всего понравиласьsmile



-------
Блин.. я видно устал, ибо туплю сильно... Код GoodBoy'a то работает.. просто я изменил '+10y' на '100' только в одном месте, а не в 3-ёх.

Изините за беспокойство smile

Это сообщение отредактировал(а) Innuendo - 8.4.2006, 23:36


--------------------
=)
PM MAIL ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0523 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.