saigontov 2 Опубликовано: 14 декабря 2010 Рассказать Опубликовано: 14 декабря 2010 Привет всем. Вот сайт - Моя ссылка (здесь тестирую то, что будет на другом сайте =)) Вопрос в следующем... Надо сделать промежуточную табличку с предупреждением... я сделал это так <noindex> <div [color="#8B0000"]id="adult"[/color] style="position:absolute; z-index:232; right:0; top:0; width:100%; height:100%; background-image: url(http://www.alcoexpert.ru/uploads/18/18.png);" align="center"> <div style="background: url(http://www.alcoexpert.ru/uploads/18/form.png); width:455px; height: 150px; padding:20px; position:relative; top:300px; color:#999;" align="left"> <div style="margin-left:70px; margin-top:50px; font-size:16px;"><a href="http://igontov.ru/#" class="white" [color="#8B0000"]onClick="document.cookie = 'adult=on; path=/'[/color]";>Нажмите сюда, если вам больше 18 лет.</a><br></div> <div style=" margin-left:70px; font-size:10px;"><br>Если у вас возникли проблемы с входом на сайт,<br>обратитесь к своему системному администратору.</div></p> </div> [color="#8B0000"]<script language="JavaScript"> var isDOM =document.getElementById; var isNetscape4=document.layers ; var isMozilla =isDOM && navigator.appName=="Netscape" ; if (isNetscape4 || isMozilla) { document.getElementById("adult").style.height = self.document.body.scrollHeight+"px"; } </script>[/color] </noindex> В работе смотрите здесь: Моя ссылка По идее, при нажатии на ссылку с подтверждением о совершеннолетии - табличка пропадает и всё... работаем дальше. Но кукиес почему-то не сохраняет нифига... и поэтому на любой странице сайта опять появляется эта табличка... С кукисами работать не умею... код в принципе содрал с другого сайта... Подскажите где ошибки и как наладить. Заранее спасибо. С уважением. Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 14 декабря 2010 Рассказать Опубликовано: 14 декабря 2010 Я как-то клиенту делал так: <?php if ( $_GET['otvet'] == "yes" ) { setcookie ( "counter", "1", time () + 31536000, "/", ".da-detka.ru" ); header ( "Location: " . $_COOKIE['referer'] ); } elseif ( $_SERVER["REQUEST_URI"] != "/preduprezhdenie.html" and !isset ( $_COOKIE['counter'] ) ) { setcookie ( "referer", $_SERVER["REQUEST_URI"], time () + 31536000, "/", ".da-detka.ru" ); header ( "Location: /preduprezhdenie.html" ); } ?> [/php] Пример работы можете посмотреть тут: http://da-detka.ru Берите, пользуйтесь, может быть поможет Цитата Ссылка на сообщение Поделиться на других сайтах
Sarvan 35 Опубликовано: 14 декабря 2010 Рассказать Опубликовано: 14 декабря 2010 Решил помочь. ))) CSS: Это те же самые стили, что из примера выше в дивах, просто я их вывел отдельно. Копируем их в /templates/имя_шаблона/css/style.css в самый низ. .div1 { position: absolute; z-index: 232; right: 0; top: 0; width: 100%; height: 100%; background-image: url(http://www.alcoexpert.ru/uploads/18/18.png); } .div2 { background: url(http://www.alcoexpert.ru/uploads/18/form.png); width: 455px; height: 150px; padding: 20px; position: relative; margin: 100px auto; color: #999; } .div3 { margin-left:70px; margin-top:35px; margin-bottom:10px; font-size:16px; } .div4 { margin-left:70px; font-size:12px; } Далее: Берём JavaScript window.onload = function() { getCookie("adult"); } function getCookie(name) { var cookie = document.cookie.indexOf(name + "="); if (cookie != -1) document.location.href = "http://igontov.ru/"; else setWarn(); } function setWarn() { var div1 = document.createElement("DIV"); document.body.appendChild(div1); var div2 = document.createElement("DIV"); var div3 = document.createElement("DIV") div2.appendChild(div3); var a = document.createElement("A"); div3.appendChild(a); a.href = "javascript:setCookie(1);"; var t = document.createTextNode("Нажмите сюда, если вам больше 18 лет."); a.appendChild(t); var br = document.createElement("BR"); div3.appendChild(br); a = document.createElement("A"); div3.appendChild(a); a.href = "javascript:setCookie(0);"; t = document.createTextNode("Нажмите сюда, если вам меньше 18 лет."); a.appendChild(t); br = document.createElement("BR"); div3.appendChild(br); var div4 = document.createElement("DIV") div2.appendChild(div4); t = document.createTextNode("Если у вас возникли проблемы с входом на сайт,"); div4.appendChild(t); br = document.createElement("BR"); div4.appendChild(br); t = document.createTextNode("обратитесь к своему системному администратору."); div4.appendChild(t); div1.appendChild(div2); div1.className = "div1"; div2.className = "div2"; div3.className = "div3"; div4.className = "div4"; } function setCookie(param) { if (param) { document.cookie = "adult=1; path=/;"; window.location.reload(); } else document.location.href = "http://google.ru"; } И закидываем его например в warnAdult.js. Попутно создав его по такому пути /templates/имя_шаблона/js/warnAdult.js Далее: В шаблоне main.tpl между <head></head> прописываем <script type="text/javascript" src="{THEME}/js/warnAdult.js"></script> Всё! PS. Можно конечно было всё и по другому написать, проще, но мне захотелось так. ))) Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 14 декабря 2010 Рассказать Опубликовано: 14 декабря 2010 Sarvan, громоздкий способ Каждому новому посетителю сайта надо будет скачивать 1,5 кб JS кода и делать дополнительный запрос к серверу для скачки этого файла. Всем остальным, у кого в кеше уже есть этот код, надо будет всё равно делать запрос к серверу, чтобы получить в ответ HTTP/1.1 304 Not Modified Всё это влияет на время загрузки сайта. А если человек зашел на сайт по адресу igontov.ru/folder/video/123.html, например, через google и нажал на ссылку "Мне уже есть 18 лет", то куда он попадает потом? Его перекидывает на главную страницу сайта? Цитата Ссылка на сообщение Поделиться на других сайтах
Sarvan 35 Опубликовано: 14 декабря 2010 Рассказать Опубликовано: 14 декабря 2010 (изменено) А если человек зашел на сайт по адресу igontov.ru/folder/video/123.html, например, через google и нажал на ссылку "Мне уже есть 18 лет", то куда он попадает потом? Его перекидывает на главную страницу сайта? Да упустил. Строку: document.location.href = "http://igontov.ru/"; Заменить на: document.location.void; Не такой уж я и профи. )) Но JavaScript люблю. Те, кто adult занимаются им нечего боятся за один 1кб. Там баннеры по метру крутятся. ))) Изменено 14 декабря 2010 пользователем Sarvan Цитата Ссылка на сообщение Поделиться на других сайтах
saigontov 2 Опубликовано: 15 декабря 2010 Рассказать Опубликовано: 15 декабря 2010 Автор Уф... =) Спасибо парни. пошел разбираться. отпишусь чо да как =) Решил помочь. ))) CSS: Это те же самые стили, что из примера выше в дивах, просто я их вывел отдельно. Копируем их в /templates/имя_шаблона/css/style.css в самый низ. .div1 { position: absolute; z-index: 232; right: 0; top: 0; width: 100%; height: 100%; background-image: url(http://www.alcoexpert.ru/uploads/18/18.png); } .div2 { background: url(http://www.alcoexpert.ru/uploads/18/form.png); width: 455px; height: 150px; padding: 20px; position: relative; margin: 100px auto; color: #999; } .div3 { margin-left:70px; margin-top:35px; margin-bottom:10px; font-size:16px; } .div4 { margin-left:70px; font-size:12px; } Далее: Берём JavaScript window.onload = function() { getCookie("adult"); } function getCookie(name) { var cookie = document.cookie.indexOf(name + "="); if (cookie != -1) document.location.href = "http://igontov.ru/"; else setWarn(); } function setWarn() { var div1 = document.createElement("DIV"); document.body.appendChild(div1); var div2 = document.createElement("DIV"); var div3 = document.createElement("DIV") div2.appendChild(div3); var a = document.createElement("A"); div3.appendChild(a); a.href = "javascript:setCookie(1);"; var t = document.createTextNode("Нажмите сюда, если вам больше 18 лет."); a.appendChild(t); var br = document.createElement("BR"); div3.appendChild(br); a = document.createElement("A"); div3.appendChild(a); a.href = "javascript:setCookie(0);"; t = document.createTextNode("Нажмите сюда, если вам меньше 18 лет."); a.appendChild(t); br = document.createElement("BR"); div3.appendChild(br); var div4 = document.createElement("DIV") div2.appendChild(div4); t = document.createTextNode("Если у вас возникли проблемы с входом на сайт,"); div4.appendChild(t); br = document.createElement("BR"); div4.appendChild(br); t = document.createTextNode("обратитесь к своему системному администратору."); div4.appendChild(t); div1.appendChild(div2); div1.className = "div1"; div2.className = "div2"; div3.className = "div3"; div4.className = "div4"; } function setCookie(param) { if (param) { document.cookie = "adult=1; path=/;"; window.location.reload(); } else document.location.href = "http://google.ru"; } И закидываем его например в warnAdult.js. Попутно создав его по такому пути /templates/имя_шаблона/js/warnAdult.js Далее: В шаблоне main.tpl между <head></head> прописываем <script type="text/javascript" src="{THEME}/js/warnAdult.js"></script> Всё! PS. Можно конечно было всё и по другому написать, проще, но мне захотелось так. ))) Короче сделал всё как выше написано. Но в итоге получилось то же самое. Подскажите где проблема. <noindex> <div id="adult" class="div1" align="center"> <div class="div2" align="left"> <div class="div3"><a href="/">Если вам 18....</a><br></div> <div class="div4"><br>бла бла бла</div></p> </noindex> Это вот я в шаблоне вставил... Цитата Ссылка на сообщение Поделиться на других сайтах
Sarvan 35 Опубликовано: 15 декабря 2010 Рассказать Опубликовано: 15 декабря 2010 В шаблон между <head></head> кроме <script type="text/javascript" src="{THEME}/js/warnAdult.js"></script> больше вставлять ничего не нужно всё автоматом генерируется. Есть кука высветится предупреждение нет куки ничего не высветится. Cookie создаётся на одну сессию то есть до закрытия браузера. Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 15 декабря 2010 Рассказать Опубликовано: 15 декабря 2010 Cookie создаётся на одну сессию то есть до закрытия браузера. Зачем такое? То-есть человек подтвердил, что ему есть 18 лет, а после того как закрыл браузер ему надо снова подтверждать? Или я не так понял? Цитата Ссылка на сообщение Поделиться на других сайтах
Sarvan 35 Опубликовано: 15 декабря 2010 Рассказать Опубликовано: 15 декабря 2010 (изменено) Правильно. Сколько не видел даже на популярных порно тубах сделано так. После закрытия браузера нужно снова подтверждать. Переделать не долго. Строчку: document.cookie = "adult=1; path=/;"; Заменить на: document.cookie = "adult=1; expires=Mon, 01-Jan-2012 00:00:00 GMT; path=/;"; Так cookie установится до 1 января 2012 г. Изменено 15 декабря 2010 пользователем Sarvan Цитата Ссылка на сообщение Поделиться на других сайтах
saigontov 2 Опубликовано: 20 декабря 2010 Рассказать Опубликовано: 20 декабря 2010 Автор В шаблон между <head></head> кроме <script type="text/javascript" src="{THEME}/js/warnAdult.js"></script> больше вставлять ничего не нужно всё автоматом генерируется. Есть кука высветится предупреждение нет куки ничего не высветится. Cookie создаётся на одну сессию то есть до закрытия браузера. Причем здесь это. У меня там только табсы прописаны и всё. но они никак не пересекаются с этим скриптом. В общем не получается почему то. Вроде всё правильно сделал. Есть еще какие-то варианты? Цитата Ссылка на сообщение Поделиться на других сайтах
Sarvan 35 Опубликовано: 20 декабря 2010 Рассказать Опубликовано: 20 декабря 2010 У вас всё работает! По крайней мере тут igontov.ru Просто файл "warnAdult.js" пересохраните в кодировке windows-1251 и удалите из шаблона: <noindex> <div id="adult" class="div1" align="center"> <div class="div2" align="left"> <div class="div3"><a href="/">Нажмите сюда, если вам больше 18 лет</a><br></div> <div class="div4"><br>Если у вас возникли проблемы с входом на сайт,<br>обратитесь к своему системному администратору.</div></p> </noindex> Цитата Ссылка на сообщение Поделиться на других сайтах
saigontov 2 Опубликовано: 21 декабря 2010 Рассказать Опубликовано: 21 декабря 2010 (изменено) Автор У вас всё работает! По крайней мере тут igontov.ru Просто файл "warnAdult.js" пересохраните в кодировке windows-1251 и удалите из шаблона: <noindex> <div id="adult" class="div1" align="center"> <div class="div2" align="left"> <div class="div3"><a href="/">Нажмите сюда, если вам больше 18 лет</a><br></div> <div class="div4"><br>Если у вас возникли проблемы с входом на сайт,<br>обратитесь к своему системному администратору.</div></p> </noindex> Да, заработало! Спасибо. Правильно. Сколько не видел даже на популярных порно тубах сделано так. После закрытия браузера нужно снова подтверждать. Переделать не долго. Строчку: document.cookie = "adult=1; path=/;"; Заменить на: document.cookie = "adult=1; expires=Mon, 01-Jan-2012 00:00:00 GMT; path=/;"; Так cookie установится до 1 января 2012 г. А вот это дело надо будет потом поменять? После 1 января 2012? У вас всё работает! По крайней мере тут igontov.ru А еще зацени вот тут. www.alcoexpert.ru - всё уползло тупо вниз. как это поправить? я думаю это не в стилях же проблема? Изменено 21 декабря 2010 пользователем saigontov Цитата Ссылка на сообщение Поделиться на других сайтах
Sarvan 35 Опубликовано: 21 декабря 2010 Рассказать Опубликовано: 21 декабря 2010 (изменено) Именно в них. Вы их не добавили. Положение и как оно будет выглядеть настраивается именно в CSS. А вот это дело надо будет потом поменять? После 1 января 2012? Замените строчку: document.cookie = "adult=1; expires=Mon, 01-Jan-2012 00:00:00 GMT; path=/;"; на: var d = new Date(); var oneYearFromNow = d.getTime() + (365*24*60*60*1000); d.setTime(oneYearFromNow); document.cookie = "adult=1; expires=" + d.toGMTString() + "; path=/;"; Так cookie будет устанавливаться каждому пользователю на один год с текущей даты. Изменено 21 декабря 2010 пользователем Sarvan Цитата Ссылка на сообщение Поделиться на других сайтах
saigontov 2 Опубликовано: 21 декабря 2010 Рассказать Опубликовано: 21 декабря 2010 Автор Именно в них. Вы их не добавили. Положение и как оно будет выглядеть настраивается именно в CSS. А вот это дело надо будет потом поменять? После 1 января 2012? Замените строчку: document.cookie = "adult=1; expires=Mon, 01-Jan-2012 00:00:00 GMT; path=/;"; на: var d = new Date(); var oneYearFromNow = d.getTime() + (365*24*60*60*1000); d.setTime(oneYearFromNow); document.cookie = "adult=1; expires=" + d.toGMTString() + "; path=/;"; Так cookie будет устанавливаться каждому пользователю на один год с текущей даты. Может айдишники пересекаются? хотя х3. не понимаю что не так. Поменял названия дивов на "fose" window.onload = function() { getCookie("adult"); } function getCookie(name) { var cookie = document.cookie.indexOf(name + "="); if (cookie != -1) document.location.void; else setWarn(); } function setWarn() { var fose1 = document.createElement("DIV"); document.body.appendChild(fose1); var fose2 = document.createElement("DIV"); var fose3 = document.createElement("DIV") fose2.appendChild(fose3); var a = document.createElement("A"); fose3.appendChild(a); a.href = "javascript:setCookie(1);"; var t = document.createTextNode("Íàæìèòå ñþäà, åñëè âàì áîëüøå 18 ëåò."); a.appendChild(t); var br = document.createElement("BR"); fose3.appendChild(br); var fose4 = document.createElement("DIV") fose2.appendChild(fose4); t = document.createTextNode("Åñëè ó âàñ âîçíèêëè ïðîáëåìû ñ âõîäîì íà ñàéò,"); fose4.appendChild(t); br = document.createElement("BR"); fose4.appendChild(br); t = document.createTextNode("îáðàòèòåñü ê ñâîåìó ñèñòåìíîìó àäìèíèñòðàòîðó."); fose4.appendChild(t); fose1.appendChild(fose2); fose1.className = "fose1"; fose2.className = "fose2"; fose3.className = "fose3"; fose4.className = "fose4"; } function setCookie(param) { if (param) { var d = new Date(); var oneYearFromNow = d.getTime() + (365*24*60*60*1000); d.setTime(oneYearFromNow); document.cookie = "adult=1; expires=" + d.toGMTString() + "; path=/;"; window.location.reload(); } else document.location.href = "http://kitmedia.ru"; } .fose1 { position: absolute; z-index: 284; right: 0; top: 0; width: 100%; height: 100%; background: url("http://www.alcoexpert.ru/uploads/18/18.png"); } .fose2 { background: url("http://www.alcoexpert.ru/uploads/18/form.png"); width: 455px; height: 150px; padding: 20px; position: relative; margin: 250px auto; color: #999; } .fose3 { margin-left:50px; margin-top:40px; margin-bottom:10px; font-size:16px; } .fose4 { margin-left:70px; font-size:12px; text-align:left; } Помогите уже до конца разобраться =) А то уже жаль на полпути отступать Цитата Ссылка на сообщение Поделиться на других сайтах
Sarvan 35 Опубликовано: 21 декабря 2010 Рассказать Опубликовано: 21 декабря 2010 Ошибка в /style/styles.css <!-- +18 adult --> Так не комментируют в CSS. Замените на: /* +18 adult */ и концовку на: /* +18 adult end */ Цитата Ссылка на сообщение Поделиться на других сайтах
saigontov 2 Опубликовано: 21 декабря 2010 Рассказать Опубликовано: 21 декабря 2010 Автор Ошибка в /style/styles.css <!-- +18 adult --> Так не комментируют в CSS. Замените на: /* +18 adult */ и концовку на: /* +18 adult end */ Блин, с вот я лох. второй раз лажаю с этими пояснениями =) Спасибо Однако проблема не ушла =) Табличка осталась внизу, только теперь распознался фон. Цитата Ссылка на сообщение Поделиться на других сайтах
Sarvan 35 Опубликовано: 21 декабря 2010 Рассказать Опубликовано: 21 декабря 2010 (изменено) Вы издеваетесь? Нельзя быть таким не внимательным в 3 строчках. )) Ошибка .div1 { position: Замените на .div1 { лишний position: без значения который. Заодно сохраните картинки в паку images своего шаблона /images/18.png и /images/form.png И подправьте пути http://www.alcoexpert.ru/uploads/18/18.png http://www.alcoexpert.ru/uploads/18/form.png на ../images/18.png ../images/form.png Изменено 21 декабря 2010 пользователем Sarvan Цитата Ссылка на сообщение Поделиться на других сайтах
saigontov 2 Опубликовано: 22 декабря 2010 Рассказать Опубликовано: 22 декабря 2010 Автор Вы издеваетесь? Нельзя быть таким не внимательным в 3 строчках. )) Ошибка .div1 { position: Замените на .div1 { лишний position: без значения который. Заодно сохраните картинки в паку images своего шаблона /images/18.png и /images/form.png И подправьте пути http://www.alcoexpert.ru/uploads/18/18.png http://www.alcoexpert.ru/uploads/18/form.png на ../images/18.png ../images/form.png Мда, мозг уже хочет нового года. В общем огромное спасибо! Всё заработало =) Единственное НО, это то, что эксплорер как обычно ничего не показывает... ну и х.. с ним Цитата Ссылка на сообщение Поделиться на других сайтах
Sarvan 35 Опубликовано: 22 декабря 2010 Рассказать Опубликовано: 22 декабря 2010 Замени: if (cookie != -1) document.location.void; else setWarn(); на: if (cookie == -1) setWarn(); И в IE заработает. Цитата Ссылка на сообщение Поделиться на других сайтах
saigontov 2 Опубликовано: 22 декабря 2010 Рассказать Опубликовано: 22 декабря 2010 Автор Замени: if (cookie != -1) document.location.void; else setWarn(); на: if (cookie == -1) setWarn(); И в IE заработает. Крассава! =) Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.