Ротатор кликандеров. Нужен совет

spiderbuber

Гуру форума
Заблокирован
Регистрация
20 Июл 2009
Сообщения
237
Реакции
59
  • Автор темы
  • Заблокирован
  • #1
Для ротации кликандеров использую код:
PHP:
<?php
$popup[] = '<script language="javascript" src="http://1.ru"></script>'; 
$popup[] = '<script language="JavaScript" src="http://2.ru"></script>'; 
$popup[] = '<script language="JavaScript" src="http://3.ru"></script>';
$timecod = 43200; $count = 0; 
if (isset($_COOKIE['rotcod'])) $count = $_COOKIE['rotcod']; 
if ($_COOKIE['rotcod']>count($popup)-1) 
$count = 0; 
$count++; 
setcookie("rotcod", $count, time()+$timecod); ?>

<html>
<head>
<title>site</title>
</head>
<body>
<?=$popup[$_COOKIE['rotcod']-1] ?>
</body>
</html>

Работает то всё красиво, но проблема в том, что при первом обращении к скрипту код не срабатывает (не появляется в ротации). Видимо из-за того, что куки нету. Как можно поправить ситуацию?
 
ты вызываешь серверную переменную которой нет если человек заходит без куки
PHP:
<?=$popup[$_COOKIE['rotcod']-1] ?>

ты её устанавливаешь и читаешь в одном и том же запуске скрипта а она сможет прочитаться только при следующем запуске

в скрипте в самом начале сделай
PHP:
$cooc = $_COOKIE['rotcod'];

а при вызове используй не серверную переменную а внутреннюю
PHP:
<?=$popup[$cooc-1] ?>
тогда значение будет учтено в текущем запуске
 
  • Автор темы
  • Заблокирован
  • #3
Не помогло :(
PHP:
<?php
$cooc = $_COOKIE['rotcod'];
$popup[] = '<script language="javascript" src="http://1.ru"></script>'; 
$popup[] = '<script language="JavaScript" src="http://2.ru"></script>'; 
$popup[] = '<script language="JavaScript" src="http://3.ru"></script>';
$timecod = 43200; $count = 0; 
if (isset($_COOKIE['rotcod'])) $count = $_COOKIE['rotcod']; 
if ($_COOKIE['rotcod']>count($popup)-1) 
$count = 0; 
$count++; 
setcookie("rotcod", $count, time()+$timecod); ?>

<html>
<head>
<title>site</title>
</head>
<body>
<?=$popup[$cooc-1] ?>
</body>
</html>
1) Чищу куки, сразу сморю сурс-код - пусто
2) Закрываю сурс, обновляю - уже есть
И так в нескольких браузерах..
 
<?php
$popup[] = '<script language="javascript" src="http://1.ru"></script>';
$popup[] = '<script language="JavaScript" src="http://2.ru"></script>';
$popup[] = '<script language="JavaScript" src="http://3.ru"></script>';
$timecod = 43200; $count = 0;
if (isset($_COOKIE['rotcod'])) $count = $_COOKIE['rotcod'];
if ($_COOKIE['rotcod']>count($popup)-1)
$count = 0;
$count++;
setcookie("rotcod", $count, time()+$timecod);
$_COOKIE['rotcod']=$count;
?>
<html>
<head>
<title>site</title>
</head>
<body>
<?=$popup[$_COOKIE['rotcod']-1] ?>
</body>
</html>


Надеюсь туда поставил кусок кода. Его нужно ставить в условие, если кука не существует.
 
spiderbuber
ясное дело не помогло ты должен получать куку только один раз и помещать её в переменную и юзать потом эту переменную а не опять в серверные лезть.

вот как это должно было выглядеть.

PHP:
$popup[0] = '';
$popup[1] = 'код-1';
$popup[2] = 'код-2';
$popup[3] = 'код-3';


if (isset($_COOKIE['key'])){
$num_cod = (int)$_COOKIE['key'];
}else $num_cod = 0;
if ($num_cod < count($popup)){
$num_cod++;
setcookie("key", $num_cod, time()+43200, "/");


echo $popup[$num_cod];

обрати ещё внимание на setcookie у тебя директория не указана
будет на каждый переход под новую директорию = рефереру ключ создаваться
 
Назад
Сверху