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

Тема в разделе "Как сделать...", создана пользователем spiderbuber, 11 май 2011.

  1. spiderbuber

    spiderbuber

    Заблокирован
    Регистр.:
    20 июл 2009
    Сообщения:
    237
    Симпатии:
    61
    Для ротации кликандеров использую код:
    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"$counttime()+$timecod); ?>

    <html>
    <head>
    <title>site</title>
    </head>
    <body>
    <?=$popup[$_COOKIE['rotcod']-1?>
    </body>
    </html>
    Работает то всё красиво, но проблема в том, что при первом обращении к скрипту код не срабатывает (не появляется в ротации). Видимо из-за того, что куки нету. Как можно поправить ситуацию?
     
  2. o_nix

    o_nix

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

    в скрипте в самом начале сделай
    PHP:
    $cooc $_COOKIE['rotcod'];
    а при вызове используй не серверную переменную а внутреннюю
    PHP:
    <?=$popup[$cooc-1?>
    тогда значение будет учтено в текущем запуске
     
  3. spiderbuber

    spiderbuber

    Заблокирован
    Регистр.:
    20 июл 2009
    Сообщения:
    237
    Симпатии:
    61
    Не помогло :(
    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"$counttime()+$timecod); ?>

    <html>
    <head>
    <title>site</title>
    </head>
    <body>
    <?=$popup[$cooc-1?>
    </body>
    </html>
    1) Чищу куки, сразу сморю сурс-код - пусто
    2) Закрываю сурс, обновляю - уже есть
    И так в нескольких браузерах..
     
  4. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    991
    Симпатии:
    267

    Надеюсь туда поставил кусок кода. Его нужно ставить в условие, если кука не существует.
     
    spiderbuber нравится это.
  5. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.037
    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_codtime()+43200"/");


    echo 
    $popup[$num_cod];
    обрати ещё внимание на setcookie у тебя директория не указана
    будет на каждый переход под новую директорию = рефереру ключ создаваться
     
    spiderbuber нравится это.