2016-08-09 32 views
2

我正在尝试构建一个非常简单的广告系统,该系统包含在我的所有网站上,并且使用脚本上方的变量调用以确定显示哪种广告。使用JS包含来自另一台服务器的PHP

对于这个系统,我一直在使用基本的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 = '';     
} 
///////////////////// 

非常基本的时刻 - 尚未完成。简单地使用这个作为测试来得到它的工作,然后我将处理修复安全问题和SQL注入等...

然后,这将显示adsystem.php代码在网站的底部,或任何我决定添加它。这对于本地网站来说非常合适 - 尽管我正在与不在同一台服务器上的网站合作,而且您可以想象,这是由于安全问题而遇到问题的地方。

谷歌Adsense和其他广告代理公司通过使用JS代码来调用广告来解决这个问题,尽管我没有足够的熟练使用JS来做到这一点。在这个方向上,我想知道是否可以使用JS来调用PHP脚本,或者甚至可以使用它?

如果有人能指点我在这个合适的地方,那会很棒吗?

+0

你应该教育自己在AJAX;你只是不能在浏览器上执行PHP代码,所以你需要获取整个广告的HTML,而不仅仅是代码。据我了解你的问题,你应该建立一个服务器,通过API暴露广告,然后用js在每个网站中调用它们。所以你需要注意'关于CORS。 – Sergeon

+1

@BasitSaeed - “默认情况下也会阻止CSRF攻击。简而言之:向其他域发出AJAX请求会被默认阻止” - ** false **。读取响应被阻止。提出请求不是。您可以使用XMLHttpRequest启动CSRF攻击。 – 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> 

在这个网址,你应该在PHP动态生成一段JavaScript代码,其中应该包含广告内容,并写入到html文档再次使用document.write方法。

-1

您可以使用AJAX异步调用该脚本。在您的php中返回带有可用广告的JSON。

另外你应该考虑使用模板引擎和/或PHP框架。将业务逻辑与业务逻辑混合起来并不是个好主意。

+0

如果你已经downvoted描述一个原因:) – nix9

+0

感谢您的回答,我没有downvote这一点,我感谢这里的任何帮助。这是否会打击我当时面临的安全问题? – Snappysites

+0

正如您对问题的评论所述。您必须使用CSRF令牌来防止攻击。 – nix9

相关问题