2016-08-09 5 views
2

Я пытаюсь создать очень простую рекламную систему, которая включена во все мои веб-сайты и вызывается с использованием переменной над скриптом, чтобы определить, какая реклама отображается.Включая PHP с другого сервера с использованием JS

Для этой системы я использовал основные функции include. Например, на сайте клиентов, рядом с сноске, я бы:

$ad_type = 'banner'; 
include = '../../adsystem/adsystem.php'; 

Код для этого adsystem.php является:

///// BANNER AD ////// 
if($ad_type == 'banner'){ 
     $today = date("Y-m-d"); 
     $sql = "SELECT * FROM `ad_adverts` WHERE `ad_start_date` <= '$today' AND `ad_end_date` >= '$today' AND `ad_type` = 'banner' ORDER BY RAND() LIMIT 1"; 
     $result = $ad_conn->query($sql); 

        if ($result->num_rows > 0) { 
        // output data of each row 
        while($row = $result->fetch_assoc()) { 

        $ad_id = $row["ad_id"];      
        $ad_link = $row["ad_link"]; 
        $ad_direc = $row["ad_direc"]; 

        ?> 
        <div align="center"> 
        <a target="_blank" href="http://mysite.co.uk/adsystem/adsystem.php?redirect=<? echo $ad_link; ?>&adid=<? echo $ad_id; ?>"><img src="<? echo $ad_direc; ?>" alt="<? echo $ad_link; ?>" style="width:70%; height:70px;"></a> 
        </div> 
        <? 


           } 
         } 
$ad_type = '';     
} 
///////////////////// 

ОЧЕНЬ BASIC В НАСТОЯЩЕЕ ВРЕМЯ - ЭТО ЕЩЕ НЕ ПОЛНЫЙ. Просто используя это как тест, чтобы заставить его работать, я буду заниматься устранением проблем безопасности и SQL-инъекций и т. Д.

Затем будет отображаться код adsystem.php внизу сайта или где бы я ни находился решите добавить его. И это отлично работает для локальных веб-сайтов - хотя я работаю с веб-сайтами, которые не находятся на одном сервере, и, как вы можете себе представить, именно здесь я столкнулся с проблемами из-за проблем с безопасностью.

Google Adsense и другие рекламные агентства борются с этой проблемой, используя JS-код для вызова рекламы, хотя я недостаточно квалифицирован для JS для этого. В этом направлении, однако, мне интересно, можно ли использовать JS для вызова PHP-скрипта или если это будет работать?

Если бы кто-нибудь мог указать мне в нужное место здесь, это было бы здорово?

+0

Вы должны воспитывать себя в AJAX; вы просто не можете выполнить PHP-код в браузере, поэтому вам нужно получить весь html рекламы, а не только код. Насколько я понимаю вашу проблему, вы должны настроить сервер, который предоставляет рекламу через API, а затем называть их с помощью js на каждом веб-сайте. Таким образом, вам нужно будет знать о BOR CORS. – Sergeon

+1

@BasitSaeed - "предотвратит также атаку CSRF по умолчанию. Короче говоря, запрос AJAX на другой домен блокируется по умолчанию" - ** false **. Чтение ответа блокируется. Сделать запрос нет. Вы можете запускать атаки CSRF с помощью XMLHttpRequest. – Quentin

+0

Спасибо за совет, короче говоря, PHP и JS - далеко не для этого? Я должен смотреть на AJAX? Кто-нибудь знает какие-либо полезные статьи или ссылки, которые могут быть полезны для меня в этом случае? – Snappysites

ответ

0

Без JS вы не сможете это сделать. Пожалуйста, проверьте метод document.write. Вот вам пример того, как добавить динамически файл JS с помощью объявлений в HTML документ:

<script> 
    var url = 'http://ads.com/buyme?rand='+Math.random() 
    document.write('<script src="'+url+'"></scr'+'ipt>') 
</script> 

По этому URL, вы должны сгенерировать фрагмент кода JavaScript динамически в PHP, которая должна содержать содержание рекламы и писать в html, используя метод document.write снова.

-1

Вы можете использовать AJAX для асинхронного вызова этого сценария. В вашем php возвратите JSON с доступными рекламными объявлениями.

Также следует рассмотреть возможность использования механизма шаблонов и/или фреймворка PHP. Смешивание взглядов с бизнес-логикой - отличная идея.

+0

Если вы уже ниспровергли описание причины :) – nix9

+0

Спасибо за ваш ответ, я не сделал этого, я ценю любую помощь здесь. Будет ли это бороться с проблемами безопасности, с которыми я столкнулся тогда? – Snappysites

+0

Как упоминается как комментарий к вашему вопросу. Вы должны использовать токен CSRF для предотвращения атак. – nix9

 Смежные вопросы

  • Нет связанных вопросов^_^