Jump to content
  • 0

Как узнать что на сайт зашли с внешнего ресурса?


Alarr
 Share

Question

Как узнать что юзер зашёл на сайт не из внутренних страниц сайты, а с другого адреса? 
Это точно с использованием пхп, но как?
Как бы редиректить на определённую страницу людей зашедших с внешнего ресурса.

Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 0

 

Посмотрите это:

echo $_SERVER["HTTP_REFERER"];

Щас посмотрю, спасибо:)

Странно, но такое ощущение как буд-то это нереально. Все пхпшеры кидают меня посмотреть какую-то штуку, но там ничего дельного не написано. Как это применить, куча непонятностей :(

Link to comment
Share on other sites

  • 0
Странно, но такое ощущение как буд-то это нереально. Все пхпшеры кидают меня посмотреть какую-то штуку, но там ничего дельного не написано. Как это применить, куча непонятностей :(

http://www.softtime.ru/article/index.php?id_article=69

Link to comment
Share on other sites

  • 0

 

Странно, но такое ощущение как буд-то это нереально. Все пхпшеры кидают меня посмотреть какую-то штуку, но там ничего дельного не написано. Как это применить, куча непонятностей :(

http://www.softtime.ru/article/index.php?id_article=69

 

Не понимаю, зачем давать ссылку не на официальную документацию?

Link to comment
Share on other sites

  • 0

 

 

Странно, но такое ощущение как буд-то это нереально. Все пхпшеры кидают меня посмотреть какую-то штуку, но там ничего дельного не написано. Как это применить, куча непонятностей :(

http://www.softtime.ru/article/index.php?id_article=69

 

Не понимаю, зачем давать ссылку не на официальную документацию?

 

Оно всё равно не срабатывает.

<?php echo isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; ?>
 
Ничего не выводится.
 
Прошу прощения за наглость, просто скажу, что в пхп я пока только очень начинаю, и такие подсказки вообще не помогают. 

Вот это всё выводится:

<?php 

  echo "Имя сервера - ".$_SERVER['SERVER_NAME']."<br />"

  echo "IP-адрес сервера - ".$_SERVER['SERVER_ADDR']."<br />"

  echo "Порт сервера - ".$_SERVER['SERVER_PORT']."<br />"

  echo "Web-сервер - ".$_SERVER['SERVER_SOFTWARE']."<br />"

  echo "Версия HTTP-протокола - ".$_SERVER['SERVER_PROTOCOL']."<br />"

?>

 
А реферер нет.

Неужели ниукого нет просто проверенного решения. Если все на форуме будут отвечать ссылками, а не дельными советами, то форум превратиться в галимый отстой. (сори за экспрессию)

Edited by Alarr
Link to comment
Share on other sites

  • 0

Но этот код вообще укладывает сайт:
<?php 
  
echo "<a href=page.php>Ссылка на страницу PHP</a><br />"
  echo 
"Содержимое $_SERVER['HTTP_REFERER] - "
        
$_SERVER['HTTP_REFERER'
?>


А браузер какой? Может он referer не ставит?

Та надо что бы во всех работало.

Link to comment
Share on other sites

  • 0

А вы можете со внутренней странницы сайта перейти на ту, где проверяется referer?


Создайте страницу с ссылкой на ту, где проверяется referer, зайдите на неё и перейдите по ссылке.

Edited by afdw
  • Like 1
Link to comment
Share on other sites

  • 0

Спасибо, господа, за помощь. Ко мне пришло решение, которое гораздо проще, с помощью js.
 

<script script type="text/javascript">
 
if (window.location.href== "http://www.page.com/"){
   window.location.href = 'http://www.redirect-page.com/'; 
}
</script>
Link to comment
Share on other sites

  • 0

если на коленке, то с php решение будет несколько сложнее чем вы себе представляли:

<?php$mysite = $_SERVER[HTTP_HOST];$tosite = explode('/', $_SERVER['HTTP_REFERER']);if($mysite != $tosite[0]) {  header("Location: 'http://www.redirect-page.com/'");}?>

хотя там в explode массив попадут еще два слеша с http реферала..., лучше наверное не эксплоуд все же а регулярку

забыл, вот так вот можно:

<?php$mysite = $_SERVER[HTTP_HOST];$tosite = parse_url($_SERVER['HTTP_REFERER']);if($mysite != $tosite['host']) {  header("Location: 'http://www.redirect-page.com/'");}?>
  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy