Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Динамическая замена страницы
цитата
09/12/16 в 04:19
 Fortran82
Нужно сделать следующее:

При заходе на ввв.сайт\папка1\index.php должно проверяться, если заход по реф1 - то показываем один html код, если по реф2 - то другой, при этом урл должен оставаться тот же, просто отображаться нужный хтмл код, чтобы конечному пользователю это было не видно.

Кто нибудь поможет или подскажет как такое реализовать, вроде бы несложно, но я тут совсем не в теме.
цитата
09/12/16 в 04:42
 dizziness
смотря что понимается под реф1, реф2. если http_referer , тода что-то типа

Код:

<?php
if($_SERVER['HTTP_REFERER'] == 'referer1.com')
   echo "<div>html codefor refere1.com</div>";

if($_SERVER['HTTP_REFERER'] == 'referer2.com')
   echo "<div>html codefor refere2.com</div>";
?>
цитата
30/12/16 в 10:19
 PhUllOF7h3m
dizziness писал:
смотря что понимается под реф1, реф2. если http_referer , тода что-то типа

Код:

<?php
if($_SERVER['HTTP_REFERER'] == 'referer1.com')
   echo "<div>html codefor refere1.com</div>";

if($_SERVER['HTTP_REFERER'] == 'referer2.com')
   echo "<div>html codefor refere2.com</div>";
?>



а если реферов куча, и лежат в текст файле, if не годен, лучше через цикл for
цитата
12/01/17 в 14:53
 Mafia
dizziness писал:
смотря что понимается под реф1, реф2. если http_referer , тода что-то типа

Код:

<?php
if($_SERVER['HTTP_REFERER'] == 'referer1.com')
   echo "<div>html codefor refere1.com</div>";

if($_SERVER['HTTP_REFERER'] == 'referer2.com')
   echo "<div>html codefor refere2.com</div>";
?>


а как реализовать не просто отображение заданной строки, а вывод html страницы? т.е. если реф1, то показываем содержимое страницы 1.html, если реф2, то показываем 2.html
цитата
02/02/17 в 06:10
 Nikso
Код:

<?php
if($_SERVER['HTTP_REFERER'] == 'referer1.com') readfile("1.html");
elseif($_SERVER['HTTP_REFERER'] == 'referer2.com') readfile("2.html");
elseif($_SERVER['HTTP_REFERER'] == 'referer3.com') readfile("3.html");
?>


Если реферов куча.
В текстовом файле, одна строчка = один реф
Также нужно определить для каждого свою страницу. Пусть будет referer1.com.html для простоты кода. т.е. для referer1.com будет отображен referer1.com.html если он есть.
Код:

<?php
//загружаем файл
$refs = file("refs.txt", FILE_IGNORE_NEW_LINES, FILE_SKIP_EMPTY_LINES);
//циклом перебираем строчки пока найдем совпадение
foreach ($refs as $referer)
if($_SERVER['HTTP_REFERER'] == $referer) {
   $page = file_get_contents($referer . ".html");
   break;
  }
//проверяем есть ли что в $page чтобы не отдать пустую страницу
if (!$page) $page = file_get_contents("default.html");
echo $page;
?>



В домене рефера находим ключевое слово, нишу, и грузим соответствующую страницу.
teen.html, mature.html
Код:

$keys = array("teen","mature","tits");
foreach ($keys as $key)
if (strstr($_SERVER['HTTP_REFERER'], $key)) {
   $page = file_get_contents($key . ".html");
   break;
  }
if (!$page) $page = file_get_contents("default.html");
echo $page;
цитата
12/03/17 в 16:10
 Fortran82
Nikso писал:
Код:

<?php
if($_SERVER['HTTP_REFERER'] == 'referer1.com') readfile("1.html");
elseif($_SERVER['HTTP_REFERER'] == 'referer2.com') readfile("2.html");
elseif($_SERVER['HTTP_REFERER'] == 'referer3.com') readfile("3.html");
?>


Если реферов куча.
В текстовом файле, одна строчка = один реф
Также нужно определить для каждого свою страницу. Пусть будет referer1.com.html для простоты кода. т.е. для referer1.com будет отображен referer1.com.html если он есть.
Код:

<?php
//загружаем файл
$refs = file("refs.txt", FILE_IGNORE_NEW_LINES, FILE_SKIP_EMPTY_LINES);
//циклом перебираем строчки пока найдем совпадение
foreach ($refs as $referer)
if($_SERVER['HTTP_REFERER'] == $referer) {
   $page = file_get_contents($referer . ".html");
   break;
  }
//проверяем есть ли что в $page чтобы не отдать пустую страницу
if (!$page) $page = file_get_contents("default.html");
echo $page;
?>



В домене рефера находим ключевое слово, нишу, и грузим соответствующую страницу.
teen.html, mature.html
Код:

$keys = array("teen","mature","tits");
foreach ($keys as $key)
if (strstr($_SERVER['HTTP_REFERER'], $key)) {
   $page = file_get_contents($key . ".html");
   break;
  }
if (!$page) $page = file_get_contents("default.html");
echo $page;


я правильно понимаю, что при переходе со страницы teen.html все равно будет виден рефер самого скрипта index.php, а не этой страницы, которую он выдает?
цитата
12/03/17 в 17:21
 Int13h
на вскидку не проверял )
Код:
<?php
$ref = $_SERVER ['HTTP_REFERER']; //получаем реферер
$refs_and_pages_array = file ('refs_pages.txt'); //берем из txt базы формат refererN;pageN.html и помещаем в массив
foreach ($refs_and_pages_array as $temp_data) //цикл для проверки рефереров посточно
{
$ref_pages = explode (';', $temp_data ); //получаем реф из базы для итерации цикла
if ($ref == $ref_pages [0]) //если реферер равер рефу из базы
   {
$page_content = file_get_contents (trim($ref_pages[1])); // то читаем код страницы для подмены для реального реферера
echo $page_content; //выводим страницу html
exit; //завершаем цикл и скрипт
   }

}
echo file_get_contents ('no_ref_page.html'); //в случае если не был задействован не один реф загружается no_ref страница

?>


формат refs_pages.txt
ref;page_html_for_load
http://google.com;page1.html
http://msn.com;page2.html
http://yahoo.com;page3.html


Эта страница в полной версии