2012-04-19 97 views
0

我正在构建一个游戏跟踪系统,以查看我的游戏在哪里玩以及玩过多少次,因为游戏托管在许多不同的网站上。GET请求来源

当游戏开始时,它会向我的服务器上的PHP脚本发送GET请求。

我试图找出我的游戏正在播放的网址。

我尝试了很多东西,但似乎只能得到我的PHP脚本被托管的地址,这并不完全有用。

我尝试这样做:

$calling_url = mysql_real_escape_string($_SERVER['HTTP_REFERER']); 

但它只是似乎来自不同的浏览器每次都为空白。

那么,如何根据GET请求找到我的游戏正在播放的位置?

+0

是什么:您可以通过发送类似 “http://www.domain.com/welcome.php?referalname=site”

显示后来这样做你想知道,用户的IP在玩吗? – 2012-04-19 03:08:09

回答

1

你需要建立一个查询字符串。

You came from <?php echo $_GET["referalname"]; ?>. 

Click here for Extra Help

+2

... XSS天堂... – 2012-04-19 03:12:54

+0

https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29 - http://w3fools.com/ – 2012-04-19 03:16:21

+0

是的,我想这样会更有意义。我不认为XSS会成为一个问题。 – Matthew 2012-04-19 03:25:28

0

如果游戏将使用例如与<mx:HTTPService那么也许你可以在你的服务器上使用gethostbyaddr()功能的服务器资源,以找出该主机名的GET请求:

$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']); 

但是,如果该请求是从用户玩游戏我不确定。

0

大多数浏览器都会发送HTTP_REFERER。但是,如果您的用户位于防火墙后面,代理服务器可能会在请求到达之前剥离标头。最后,因为你做的已经嵌入在各种网站自己的代码,你为什么不干脆抢引荐网站的网址,并将其发送到你的服务器是这样的:

<script type="text/javascript" src="http://myserver.com/game.js?ref=$ref"></script> 

其中$裁判是实际的参照网址。对于你来说这不是那么容易,而不是那么可靠的http引用标头。