Чистка реферера (как на нулледе)

Тема в разделе "PHP", создана пользователем BuzzDD, 11 сен 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. BuzzDD

    BuzzDD Постоялец

    Регистр.:
    9 фев 2009
    Сообщения:
    76
    Симпатии:
    5
    Подскажите код для чистки реферера, т.е.
    Перейти по ссылке
    Как я понял, нужно создать отдельный файл в котором будет страничка редиректа, а в статьях (определённых страницах) проверять все ссылки и если SERVER_NAME отличается от своего сайта, то перекидывать на файл.
    Подскажите код, пожалуйста:ah:, т.к. я в регулярных выражениях не очень хорошо разбираюсь о_о
     
  2. swer

    swer

    Регистр.:
    15 июн 2008
    Сообщения:
    305
    Симпатии:
    38
    Вот....
    site.com/link.php?go=http://nulled.ws

    PHP:
    $link $_GET['go'];
    if(!empty(
    $link)){
    sleep(5);//количество секунд для задержки перед редиректом.
    header("Location: $link"); EXIT();}
     
  3. BuzzDD

    BuzzDD Постоялец

    Регистр.:
    9 фев 2009
    Сообщения:
    76
    Симпатии:
    5
    А скрипт парсинга ссылок?
     
  4. BuzzDD

    BuzzDD Постоялец

    Регистр.:
    9 фев 2009
    Сообщения:
    76
    Симпатии:
    5
    Так никто и не поможет???:(
     
  5. lena berkova

    lena berkova

    Регистр.:
    14 янв 2009
    Сообщения:
    441
    Симпатии:
    19
    возможно не самое красивое решение. у юзера в лучше случае будет висеть пустая страница, и лишь потом его отредиректит.
    правильнее наверно выводить страницу с динамическим meta refresh таймаутом
     
  6. ZloiJoker

    ZloiJoker Создатель

    Регистр.:
    2 июн 2007
    Сообщения:
    33
    Симпатии:
    0
    Лучше делать через мета редирект как сделанно на нуллед. так ты сможешь вписать текст на страницы:
    <meta http-equiv="Refresh" content="4;url=http://www.../link.html">
     
  7. dralex

    dralex Постоялец

    Регистр.:
    13 июн 2008
    Сообщения:
    77
    Симпатии:
    18
    создаешь файл ref.php
    в нем:
    PHP:
    <?PHP
    if (isset(&_GET['url'])){ // еслиссылка имеется то выводим контент
    echo 
    '
    <head>
    <meta http-equiv="Refresh" content="4;url={$url}">
    </head>
    <body>
    Через 4 секунды Вы автоматически переместитесь на сайт <u>{$url}</u>!
    </body>
    '
    ;
    }
    else 
    // если ссылка не указана
    {
    header("Location: http://твой_сайт.ru"); // редиректим на главнуюстарницу сайта
    EXIT();} 
    }
    ?>
    Обращение на этот файл выглядит так - Перейти по ссылке
     
  8. BuzzDD

    BuzzDD Постоялец

    Регистр.:
    9 фев 2009
    Сообщения:
    76
    Симпатии:
    5
    Да с этим файлом всё давно понятно, как определить, является ссылка в статье на мой сайт или нет? Чтоб не редиректить его на право и на лево:confused:
     
  9. F1NaL

    F1NaL Постоялец

    Регистр.:
    18 дек 2007
    Сообщения:
    83
    Симпатии:
    21
    Тебе надо написать обработчик твоего текста. Самое сложное - это правильно определить в тексте ссылки. А потом уже отделить те которые не на твой сайт и заменить их на Перейти по ссылке - это простые функции для работы со строками. Как вариант, чтоб не изобретать велосипед глянь парсеры в популярных движках типа dle.
     
  10. swer

    swer

    Регистр.:
    15 июн 2008
    Сообщения:
    305
    Симпатии:
    38
    А вед если поискать то можно найти, вы так не думаете?
    PHP:
    $contents file_get_contents("file.txt");
    preg_match_all("/(http:\\/\\/)?([a-z_0-9-.]+\\.[a-z]{2,3}(([ \"'>\r\n\t])|(\\/([^ \"'>\r\n\t]*)?)))/"$contents$matches);

    for(
    $i=0$i<count($matches); $i++){
    if(isset(
    $matches[0][$i])){echo "<a href='link.php?go=".$matches[0][$i]."'>".$matches[0][$i]."</a>";}}
     
    BuzzDD нравится это.
Статус темы:
Закрыта.