Закрытие окна. Не работает (

12
Rock'n'rolla
На сайте с 14.09.2009
Offline
146
880

Когда пользователь в первый раз (или первый за сутки) заходит на сайт, то у него появляется окно по середине с информацией. Когда он его закрывает или жмет по ссылке в окне, то кидается кука под названием banner со значением 1 например. Т.е. сайт знает, что если у человека есть эта кука , то ему баннер не показываем.

Вот как реализовано:

В самом начале страницы каждой страницы:

<?
if (isset($_COOKIE['banner'])){

}

else

{
if($_POST['close']){
setcookie("banner","1",time()+36000);
}

else {
$in1=1;
}
}

?>

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

В коде ниже есть условие, что если $in1=1 то мы показываем блок <div>...</div>

Если равен чему то другому, то не показываем этот блок.

Короче что то не работает =((( Причем это при переносе на MODX , до этого сайт на голом HTML + PHP был, работала такая связка.

"Vulcan-Bit - лучшая партнерка в сети" (http://vulcan-bit.com?invite=artem_kozirev) KMA.BIZ - Партнерка с крутым конвертом и отчислениями в долларах. Лить! (http://kma.biz)
C
На сайте с 04.02.2005
Offline
246
#1

setcookie("banner","1",time()+36000);

должно отправляться до вывода контента

Rock'n'rolla
На сайте с 14.09.2009
Offline
146
#2

P.S.Короче ситуация прояснилась, я добавил

echo $in1;

И получилось что, т.е. переменная $in1 используется в двух сниппеьтах, то она просто локальная и там и там и получается что это две независимые переменные, а надо, чтобы она задавалась в первом сниппете и была доступна во втором. Ка ее глобальной сделать?

Rock'n'rolla
На сайте с 14.09.2009
Offline
146
#3

Господа, как сделать чтобы переменная из одного сниппета была доступна в другом сниппете?

S
На сайте с 03.07.2009
Offline
41
#4

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

Кодинг на PHP. Разработка расширений под Joomla.
C
На сайте с 04.02.2005
Offline
246
#5
sdaprel:
передавать её через сессию. В одном снипете её заносить, в другом её из сессии извлекать.

Или пользовать placeholder

Сейчас ТС придет и все расскажет,

ему предложено три способа

IL
На сайте с 20.04.2007
Offline
412
#6
Chukcha:
Или пользовать placeholder

по идее, вариант более правильный, однако

а надо, чтобы она задавалась в первом сниппете и была доступна во втором. Ка ее глобальной сделать?

можно использовать "суперглобальные" массивы $_GET, $_POST, $GLOBALS

Rock'n'rolla
На сайте с 14.09.2009
Offline
146
#7

Все оказывается работало, я столкнулся с такой проблемой:

Кука устанавливается как надо, но чтобы это все отображалось в браузере, надо в КП modx нажать "Обновить кэш".

Ребят, как с этим бороться, с этим долбаным кешом?



Т.е. получается, юзер заходит на сайт, жмет "закрыть окно" , переходит на другую страницу, но окно у него все равно появляется и так будет появляться пока он кеш не очистит!!!

S
На сайте с 03.07.2009
Offline
41
#8

я с modx не работал, но думаю нужно вынести отработку этого скрипта в головной index.php, или что там вместо него.

C
На сайте с 04.02.2005
Offline
246
#9

может куку устанавливать js скриптом?

IL
На сайте с 20.04.2007
Offline
412
#10
Т.е. получается, юзер заходит на сайт, жмет "закрыть окно" , переходит на другую страницу, но окно у него все равно появляется и так будет появляться пока он кеш не очистит!!

Сниппет не кэшировать.

[!snippetname!]
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий