Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перенаправление/блокировка посетителя по рефереру/, заплачу тем, кто адекватно поможет 
:(
    Опции темы
loadcorp
Дата 5.6.2012, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 5.6.2012

Репутация: нет
Всего: нет



Сразу скажу, что я не кодер, поэтому сильно не пинать, соответственно за помощь отблагодарю деньгами. Кусок кода остался от бывшего кодера, его нужно доделать/переделать:

Код

<?
$referer = getenv("HTTP_REFERER");
$sname="http://сайт_откуда_посетитель.com/";
$w="http://другой_сайт_если_реферер_подошел.com/";
if(strstr($referer,$sname) && $referer!="" && strstr($referer,"count"))
{
 header("Location: ".$w."");
}

include ("оставляем_если_реферер_не_подошел.html");
?>


скрипт грубо говоря должен при совпадении рефа откуда посетитель перенаправить его на другой сайт/страницу, а при не совпадении оставить его на текущей.
у меня не работает, возможно из-за кривизны рук, что мне нужно получить в итоге:
1. возможность указать ни один реф, а много рефов.
2. помимо рефов иметь возможность фильтровать(указывать) и ip, например определенную подсеть отправить на одну страницу, а остальных на другую.
3. чтобы скрипт заработал smile


Сильно не пинайте, админы сильно не ругайте, если запостил не туда:)
PM MAIL   Вверх
Aliance
Дата 5.6.2012, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



Чтобы указывать несколько критериев (реферер, ИП), нужно использовать не строку, а массив строк:
Код

<?php
$referer = getenv("HTTP_REFERER");

$referers = array('http://сайт_откуда_посетитель.ru', 'http://сайт_откуда_посетитель.com', 'http://сайт_откуда_посетитель.net');

$redirect = "http://другой_сайт_если_реферер_подошел.com/";

if ( ! empty($referer) AND in_array($referer, $referers))
{
    header('Location: '.$redirect);
    exit;
}

include_once('оставляем_если_реферер_не_подошел.html');
?>


IP можно получать например с помощью такого кода:
Код

$ip = $_SERVER['REMOTE_ADDR'];

$ips = array('1.1.1.1', '2.2.2.2');

if ( ! empty($ip) AND in_array($ip, $ips))
{
    header('Location: '.$redirect);
    exit;
}

Чтобы учитывать маски нужно писать более сложную логику.

Чтобы скрипт заработал скорее всего нужно знать что за файл .html пытается инклюдится. Скорее всего ошибка там.
PM MAIL WWW ICQ Skype   Вверх
loadcorp
Дата 5.6.2012, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 5.6.2012

Репутация: нет
Всего: нет



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

Что касается скрипта работающего по рефереру, тот который ты дал не работает, вроде все правильно сделал, в чем может быть причина?

Что касается скрипта работающего по ip - работает супер, правда теперь нужно иметь возможность указать подсеть, чтобы целый список ip не указывать, а так чтоб через слеш и как там обычно указывают?
PM MAIL   Вверх
Aliance
Дата 6.6.2012, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



Цитата(loadcorp @  5.6.2012,  15:52 Найти цитируемый пост)
Что касается скрипта работающего по рефереру, тот который ты дал не работает, вроде все правильно сделал, в чем может быть причина?

Потому что я не писал ничего нового и не искал ошибок в написанном скрипте, я лишь показал пример использрвания функции in_array() для решения задачи.
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0409 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.