настройка получения Javascript удаление куки - PullRequest
0 голосов
/ 27 сентября 2011

У меня проблемы с установкой и удалением файлов cookie в php. У меня нет проблем ... в javascript, да ... много, я знаю, что этот вопрос есть везде, но все ответы, с которыми я сталкиваюсь, кажутся мне той же судьбой, поэтому я понятия не имею, что происходит .. это то, что у меня есть в настоящее время.

SetCookie("username",ztsUser,14,'/', '');

function SetCookie (name,value,expires,path,domain,secure) {
  document.cookie = name + "=" + escape (value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
  }

ошибка:

expires.toGMTString не является функцией

У меня есть масса функций cookie:

    var today = new Date();
var expiry = new Date(today.getTime() + 365 * 24 * 60 * 60 * 1000);

function getCookieVal (offset) {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1) { endstr = document.cookie.length; }
  return unescape(document.cookie.substring(offset, endstr));
  }

function GetCookie (name) {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg) {
      return getCookieVal (j);
      }
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break; 
    }
  return null;
  }

function DeleteCookie (name,path,domain) {
  if (GetCookie(name)) {
    document.cookie = name + "=" +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
  }

function SetCookie (name,value,expires,path,domain,secure) {
  document.cookie = name + "=" + escape (value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
  }

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

Ответы [ 2 ]

2 голосов
/ 27 сентября 2011

toGMTString устарело.Попробуйте вместо toUTCString:

function SetCookie (name,value,expires,path,domain,secure) {
  document.cookie = name + "=" + escape (value) +
    ((expires) ? "; expires=" + expires.toUTCString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
}

Вы также передаете число (14), когда функция ожидает дату (expires.toUTCString):

SetCookie("username", ztsUser, 14, '/', '');

Каким должен быть 14?14 дней?Предполагая это, вы можете добавить это вверху функции для поддержки чисел и дат:

if ('number' === typeof expires) {
    expires = new Date(new Date().getTime() + expires * 86400000);
}

86400000 - это количество миллисекунд в дне - 24 * 60 * 60 * 1000.

1 голос
/ 27 сентября 2011

В JS уже есть несколько отличных библиотек для обработки файлов cookie.Почему бы не использовать один из них?Просто зайдите в свою любимую поисковую систему и введите «javascript cookie library», чтобы найти ее.

...