Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   javascript + cookies (https://javascript.ru/forum/events/3343-javascript-cookies.html)

ETKartman 10.04.2009 01:56

javascript + cookies
 
доброго времени суток уважаемые мемберы.
собственно вопрос такой.
хочу сделать следующее но не знаю как :
при заходе на сайт
проверяется значение cookies name если "accept"
происходит загрузка главной страницы
если значени null (тоесть если первый раз зашёл)
пользователю вылетает окно (думаю что оптимально будет confirm) с предупреждением что на сайте используется нецензурная лексика.
если он нажимает OK то в куки записывается значение о согласии пользователя(например name = "accept") и его перебрасывает на на главную страницу.
если нет то значение в кукисы ничего не записывается и перебрасывает на страницу для не согласившихся(с какой нить детской картинкой)
вобщем никак не могу это осуществить. понимаю что вроде бы всё просто но сделать не могу. помогите чем сможете. возможно существуют другие варианты например на php или еще как то любой совет для меня дорог.

ZoNT 10.04.2009 11:18

Всё просто, вернее очень просто...
Просто надо немного погуглить.

x-yuri 10.04.2009 11:20

можно и на php. Что именно не получается?

ETKartman 10.04.2009 15:04

знаю что очень просто это моё первое знакомство с джавой и хотелось бы попросить пример скрипта.
в гугли нашел из подходящего только пример скрипта персонализация пользователя . пытаюсь переделать но как то не выходит.
================================================== ========
var username = GetCookie('username');
if (username == null) {
  username = prompt('                            Пожалуйста, введите Ваше им\я\n                         (в противном случае нажмите cancel)',"");
  if (username == null) {
    alert('Ну хорошо, тогда я буду звать Вас ВебСёрфером');
    username = 'ВебСёрфер';
  } else {
    pathname = location.pathname;
    myDomain = pathname.substring(0,pathname.lastIndexOf('/')) +'/';
    // Установка параметра expire на год вперед.
    var largeExpDate = new Date ();
    largeExpDate.setTime(largeExpDate.getTime() + (365 * 24 * 3600 * 1000));
    SetCookie('username',username,largeExpDate,myDomain);
  }
}
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 SetCookie (name, value) {
        var argv = SetCookie.arguments;
        var argc = SetCookie.arguments.length;
        var expires = (argc > 2) ? argv[2] : null;
        var path = (argc > 3) ? argv[3] : null;
        var domain = (argc > 4) ? argv[4] : null;
        var secure = (argc > 5) ? argv[5] : false;
        document.cookie = name + "=" + escape (value) +
                ((expires == null) ? "" : ("; expires=" +
expires.toGMTString())) +
                ((path == null) ? "" : ("; path=" + path)) +
                ((domain == null) ? "" : ("; domain=" + domain)) +
                ((secure == true) ? "; secure" : "");
}
document.write('<p align=center>Здравствуйте, ' + username + '</p>');

================================================== ========
как я думаю что после проверки на наличее записи
var username = GetCookie('username');
if (username == null) должен выдоваться запрос confirm он вставляется но
так получается что при любом нажатии и даже закрытии редерект происходит потому что нет условия.
если его делать с условием if confirm то почему то перестаёт вобще работать.
пожалуйста подскажите примеры.

x-yuri если знайше примеры таких скриптов подскажи. можно даже с применением базы данных. догадываюсь что можно это выдернуть с любого счётчика но не могу понять как туда вставить выполнение условий о загрузке или не загрузке.
жду ......

x-yuri 10.04.2009 16:19

с твоей идеей есть проблема: пользователь может ведь с любой страницы попасть на сайт (через поисковик), а не только через главную. Я бы предложил так: если кука не установлена (php, сервер) показывать страницу-предупреждение, и если пользователь согласился (js, клиент), обновлять ее, а php будет знать, что нужно отобразить по тому, установлена ли кука. Если не согласился - либо остаться на текущей, либо перейти на другую
по поводу реализации:
проверка установлена ли кука (php): isset($_COOKIE['name'])
установка куки (js): document.cookie = "name=1; max-age="+(60*60*24*365);
обновление страницы (наверное, кроссбраузерно будет добавить какой-нибудь параметр к URL, иначе браузер может отказаться обновлять страницу; правда в ie есть еще window.reload, но не уверен в его кроссбраузерности): window.location = 'index.php?...confirm=1';
но еще есть проблема с поисковиками: поисковику будет выдаваться страница предупреждение, и если на ней не будет явной ссылки на требуемую страницу, то он может на ней и остановиться. Поэтому может имеет смысл отказаться от предупреждения или показывать предупреждение (с помощью js) вместе с запрошенной страницей
p.s. на панели инструментов есть кнопка для создания блоков js-кода или тег js + ты бы хотя бы отступы сделал, а то желания смотреть твой скрипт в таком виде нету никакого

Riim 11.04.2009 17:44

Может отсюда, что-то пригодится:
http://woweb.ru/load/109

ETKartman 17.04.2009 11:00

Помогите
 
готов заплатить за написание мне этого скрипта. правдо в платной версии нужно использование MSQL или еще чего нибуть для хранения данных на сервере и еще кое какая модернизация . кто готов помоч пишите здесь.

jura4x01 15.03.2011 12:43

раздел форума "Работа".


Часовой пояс GMT +3, время: 23:05.