Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.04.2009, 01:56
ETKartman
 
Сообщений: n/a

javascript + cookies
доброго времени суток уважаемые мемберы.
собственно вопрос такой.
хочу сделать следующее но не знаю как :
при заходе на сайт
проверяется значение cookies name если "accept"
происходит загрузка главной страницы
если значени null (тоесть если первый раз зашёл)
пользователю вылетает окно (думаю что оптимально будет confirm) с предупреждением что на сайте используется нецензурная лексика.
если он нажимает OK то в куки записывается значение о согласии пользователя(например name = "accept") и его перебрасывает на на главную страницу.
если нет то значение в кукисы ничего не записывается и перебрасывает на страницу для не согласившихся(с какой нить детской картинкой)
вобщем никак не могу это осуществить. понимаю что вроде бы всё просто но сделать не могу. помогите чем сможете. возможно существуют другие варианты например на php или еще как то любой совет для меня дорог.
Ответить с цитированием
  #2 (permalink)  
Старый 10.04.2009, 11:18
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

Всё просто, вернее очень просто...
Просто надо немного погуглить.
Ответить с цитированием
  #3 (permalink)  
Старый 10.04.2009, 11:20
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

можно и на php. Что именно не получается?
Ответить с цитированием
  #4 (permalink)  
Старый 10.04.2009, 15:04
ETKartman
 
Сообщений: n/a

знаю что очень просто это моё первое знакомство с джавой и хотелось бы попросить пример скрипта.
в гугли нашел из подходящего только пример скрипта персонализация пользователя . пытаюсь переделать но как то не выходит.
================================================== ========
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 если знайше примеры таких скриптов подскажи. можно даже с применением базы данных. догадываюсь что можно это выдернуть с любого счётчика но не могу понять как туда вставить выполнение условий о загрузке или не загрузке.
жду ......

Последний раз редактировалось Андрей Параничев, 17.04.2009 в 15:33. Причина: Пользуйтесь bb-тегами [js] и [html] для оформления листингов кода в теле сообщения
Ответить с цитированием
  #5 (permalink)  
Старый 10.04.2009, 16:19
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

с твоей идеей есть проблема: пользователь может ведь с любой страницы попасть на сайт (через поисковик), а не только через главную. Я бы предложил так: если кука не установлена (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 + ты бы хотя бы отступы сделал, а то желания смотреть твой скрипт в таком виде нету никакого
Ответить с цитированием
  #6 (permalink)  
Старый 11.04.2009, 17:44
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Может отсюда, что-то пригодится:
http://woweb.ru/load/109
Ответить с цитированием
  #7 (permalink)  
Старый 17.04.2009, 11:00
ETKartman
 
Сообщений: n/a

Помогите
готов заплатить за написание мне этого скрипта. правдо в платной версии нужно использование MSQL или еще чего нибуть для хранения данных на сервере и еще кое какая модернизация . кто готов помоч пишите здесь.
Ответить с цитированием
  #8 (permalink)  
Старый 15.03.2011, 12:43
Интересующийся
Отправить личное сообщение для jura4x01 Посмотреть профиль Найти все сообщения от jura4x01
 
Регистрация: 11.11.2010
Сообщений: 29

раздел форума "Работа".
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с javascript andruhin Общие вопросы Javascript 12 04.05.2012 10:05
Современная книга по JavaScript twolf Оффтопик 18 21.02.2009 01:20
Программист на JavaScript (удалённо) Vadym Работа 1 28.01.2009 13:57
Обращение к именам, полученным через Javascript baal1988 Events/DOM/Window 1 31.08.2008 15:08
Нужен Старший разработчик JavaScript Yandex Работа 17 19.08.2008 16:43