Переадресация в ПХП

Печать RSS
362

J
Автор
Пацак
0
В общем есть сайт и надо сделать таким образом что бы каждый 5 клик уходил по одному адресу, каждый 10 по другому адресу, 15 по третему адресу.
как это реализовать?
П

Пацак
0
<?php 
$click=file_get_contents('click.txt');
$loc=array('site0', 'site5', 'site10', 'site15');
header('Location: '.$loc[($click%5)?0:( $click/5)]); 
file_put_contents('click.txt', $click+1);
?>
П

Пацак
0
Точнее, не $click+1, а ($click+1)%16.
J
Автор
Пацак
0
А click.txt что это?
И

Оранжевые штаны
0
4: jast, Файл "счётчик".
J

Оранжевые штаны
0
1: jast, допустим по одному адресу перешли 5 раз, он уже не нужен будет?
T

Пришелец
0
jast (12 Августа 2012 / 22:01)
В общем есть сайт и надо сделать таким образом что бы каждый 5 клик уходил по одному адресу, каждый 10 по другому адресу, 15 по третему адресу.
как это реализовать?
проще рандом сделать но я толком не понял как это каждый пятый десятый клик. мсмысле каждое десятое выполнение скрипта? и каждый десятый клик всех пользователей или для каждого отдельный счетчик неужели так трудно нормально задать вопрос не думаю что здесь есть какие то уникумы которые читают мысли.
Вообщем вот код, каждое десятое 5 выполнение этого кода будет переправлять юзера на случайную ссылку.
Счетчик определен для каждого пользователя отдельно. Надо ставить до первого выхлопа если не используется буферизация. Впроцем сделал что бы если попадется выхлоп в браузер перед кодом то все равно сработает переадресация посредством JS или же если не поддерживается тогда средствами мета тега
<?php
if ( !isset( $_SESSION ) ) {  // если сессия не обьявлена
    session_name( 'SID' );    // указать имя для сессии
    session_start();          // запустить конструктор сессиии
}

$link   = array();               // Обявляем массив
$link[] = 'http://visavi.net/';  // Добавляем в массив ссылку http://visavi.net/
$link[] = 'http://google.com/';  // Добавляем в массив ссылку http://google.com/
$link[] = 'http://wapinet.ru/';  // Добавляем в массив ссылку http://wapinet.ru/
// И так у нас в массиве три ссылки
$c = sizeof($link);
if ( $c > 0 ) {
    if ( !isset( $_SESSION['redirect'] )
        $_SESSION['redirect'] = 0;
    if ( ++ $_SESSION['redirect'] >= 5 ) {
        $_SESSION['redirect'] = 0;
        $key = mt_rand( 0, ( $c - 1 ) );
        if ( isset( $link[$key] ) ) {
            @header( 'Location: ' . $link[$key] );
            echo '<script type="text/javascript">';
            echo ' location.href="' . $link[$key]  . '"; ';
            echo '</script>';
            echo '<noscript>';
            echo '<META HTTP-EQUIV="REFRESH" CONTENT="0;URL=' . $link[$key]  . '">';
            echo '</noscript>';
            exit;
        }
    }
}
С тебя 5 баксов на кошель Z411098196540
Изменил: T-S (13.08.2012 / 16:37)
T

Пришелец
0
Этот код должен работать строго по очереди.
<?php
if ( !isset( $_SESSION ) ) {  // если сессия не обьявлена
    session_name( 'SID' );    // указать имя для сессии
    session_start();          // запустить конструктор сессиии
}
$step = 5;
$link   = array();               // Обявляем массив
$link[] = 'http://visavi.net/';  // Добавляем в массив ссылку http://visavi.net/
$link[] = 'http://google.com/';  // Добавляем в массив ссылку http://google.com/
$link[] = 'http://wapinet.ru/';  // Добавляем в массив ссылку http://wapinet.ru/
// И так у нас в массиве три ссылки
$c = sizeof($link);
if ( $c > 0 ) {
    if ( !isset( $_SESSION['redirect'] ) )
        $_SESSION['redirect'] = 0;
    $buffer = (++ $_SESSION['redirect'] / $step);
    if ( !is_float( $buffer ) && $buffer) {
        if ($buffer > $c) {
            $buffer = $_SESSION['redirect'] = $step;
        }
        $key = mt_rand( 0, ( $buffer - 1 ) );
        if ( isset( $link[$key] ) ) {
            @header( 'Location: ' . $link[$key] );
            echo '<script type="text/javascript">';
            echo ' location.href="' . $link[$key]  . '"; ';
            echo '</script>';
            echo '<noscript>';
            echo '<META HTTP-EQUIV="REFRESH" CONTENT="0;URL=' . $link[$key]  . '">';
            echo '</noscript>';
            exit;
        }
    }
}
Код не тестил сам проверь если не будет работать отпиши.
Изменил: T-S (13.08.2012 / 16:52)
J
Автор
Пацак
0
6. Доктор Зло, только когда 20 клик будет тогда и будет переадресация на первый адрес

Так надо что бы перещли не пять раз, а допустим каждый 5 клик был переадресован, то есть если даже нажали на раздел Игры но этот клик оказался 5 то он ушел
Изменил: jast (13.08.2012 / 17:22)
T

Пришелец
0
Я тебе дал код выше подходит не подходит?

Добавлено через 01:31 сек.
if ( !isset( $_SESSION['redirect'] )
Поставь еще одну скобку поставь в конце.
if ( !isset( $_SESSION['redirect'] ) )
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск