Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Встройка рекламного блока на сайт


Автор: Cobalt 28.6.2011, 12:42
столкнулся с проблемой и даж не знаю где тему разместить smile 
вообщем прошу консультации, предложили на сайте разместить рекламные ссылки. выслали код, я в пхп вообще никак, прошу прояснить - всё с ним нормально? никакого вреда он не принесет ?

Код

1. Нужно разместить папку mediapublic в корне вашего сайта и установить на нее права 777.
2. Во всех страницах, на том месте где будут отображаться ссылки, нужно разместить следующий код:

<?php
    require_once($_SERVER['DOCUMENT_ROOT']."/mediapublic/advert.php");
    echo GetAdvert();
?>

Если все правильно, то в коде страницы должно появиться <!--check-->

что за права такие и где они устанавливаются не понятно smile 

что в папке mediapublic
1. advert.db - пустая
2. advert.php
Код

<?php
function GetAdvert()
{
    $m_host = $_SERVER['HTTP_HOST'];
    $m_ruri = $_SERVER['REQUEST_URI'];

    $dbfile = dirname(__FILE__)."/advert.db";
    if (isset($_GET['cleardbfile'])) @unlink ($dbfile);
    $ftime = @filemtime ( $dbfile ) or $ftime = 0;
    $elapsed = time() - $ftime > 3600;



    //Если данные устарели, обновляем
    if ($elapsed)
    {
        $fcont = @file_get_contents("http://mediapublic.ru/links/".$m_host) or $fcont = "";

        @file_put_contents( $dbfile, $fcont );

        //$fptr = @fopen($dbfile, "w+") or die ("File open error");
        //@fwrite($fptr, $fcont) or die ("File save error");
        //@fclose($fptr) or die ("File close error");
    }
    else
    {
        $fcont = @file_get_contents( $dbfile );

        //$fptr = @fopen($dbfile, "r") or die ("File open error");
        //$fcont = @fread($fptr, filesize($dbfile)) or die ("File read error");
        //@fclose($fptr) or die ("File close error");
    }
        
    $links = "<!--check-->";

    $uricell = "#uri:#always#lnk:#";
    $pos = strpos ( $fcont, $uricell );
    if ($pos !== false)
    {
        $pos += strlen ( $uricell );
        $end = strpos ( $fcont, "#uri:#", $pos );
        $end = ($end !== false) ? $end : strlen ($fcont);
        $links = substr ( $fcont, $pos, $end-$pos );
    }

    $uricell = "#uri:#".$m_ruri."#lnk:#";
    $pos = strpos ( $fcont, $uricell );
    if ($pos !== false)
    {
        $pos += strlen ( $uricell );
        $end = strpos ( $fcont, "#uri:#", $pos );
        $end = ($end !== false) ? $end : strlen ($fcont);
        $links = substr ( $fcont, $pos, $end-$pos );
    }


    //Выводим текст
    return $links;
}
?>


3. update.php
Код

<?php
$m_host = $_SERVER['HTTP_HOST'];
$pass = isset($_GET["pass"]) ? $_GET["pass"] : "";
$md5 = "d7af994f1f1ef8b5e3b9f7fb139f57";

if (md5($pass) != $md5)
    die ("Password incorrect");

$fcont = @file_get_contents("http://mediapublic.ru/scripts/".$m_host) or $fcont = "";

if($fcont == "")
    die ("File not found");

$fname = dirname(__FILE__)."/advert.php";
$fptr = @fopen($fname, "w+") or die ("File open error");
@fwrite($fptr, $fcont) or die ("File save error");
@fclose($fptr) or die ("File close error");
echo date( "H:i:s, d/m/Y", filemtime($fname) );
?>

вот с update особо интересно че это он делает

заранее спасибо

Автор: Guedda 28.6.2011, 12:58
Апдейт обновляет файл advert.php.
То, что Вы выложили никакого вреда не нанесет. Но. Возможно, что апдейт advert.php создаст какую-либо проблему.
Поэтому на свой страх и риск. 

Автор: Valinur 28.6.2011, 13:54
Может быть покажется оффтопиком, но зачем давать скрипту права 777 ? o_O

Автор: Cobalt 28.6.2011, 14:22
Цитата(Valinur @  28.6.2011,  13:54 Найти цитируемый пост)
Может быть покажется оффтопиком, но зачем давать скрипту права 777 ? o_O 

совсем не оффтопик, мне как раз интересно самому че это, где ставятся, и зачем

Добавлено @ 14:27
примерно понял и как поставить и зачем, но почему 777 хз, подозрительно))

Автор: s0lman 28.6.2011, 16:16
Цитата(Valinur @  28.6.2011,  13:54 Найти цитируемый пост)
Может быть покажется оффтопиком, но зачем давать скрипту права 777 ? o_O 


Проще объяснить - установите чмод на 777, чем - дайте юзеру вебсервера права на запись, чтение, исполнение 

Автор: Cobalt 8.7.2011, 10:35
короче решил я подзабить на это, подозрительно.
ссылки на еще темы

http://www.cyberforum.ru/php/thread258898.html
http://forum.sape.ru/showthread.php?t=70191

Автор: Guedda 8.7.2011, 10:45
Sape допустим тоже пользуется подобным алгоритмом. Но на Sape пока еще никто не жаловался. Видимо, и там все норм.

Автор: dleblogru 8.7.2011, 11:57
 smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)