在需要图像的网站上,链接是这样的
<img src="getimage.php?id=<?php echo $name ?>" " width="280px" height="70px">
Run Code Online (Sandbox Code Playgroud)
然后在getimage.php上获取id并从中找到正确的图片并显示它.
$id = $_GET['id'];
Run Code Online (Sandbox Code Playgroud)
这非常有效.我如何找出请求的来源.所以在下面这一行的哪一页上
<img src="getimage.php?id=<?php echo $name ?>" "width="280px" height="70px">
Run Code Online (Sandbox Code Playgroud)
所以最终我可以知道请求的图像是用于index.php还是about.php等
谢谢
您可以向图像URL添加其他参数,以指定请求的页面:
<img src="getimage.php?id=<?php echo urlencode($name); ?>&page=<?php echo urlencode($page); ?>" "width="280px" height="70px">
Run Code Online (Sandbox Code Playgroud)
与您使用id参数的方式完全一样.
好处是,这不依赖于某些标头浏览器发送(或不发送)像HTTP Referer,这是您无法从服务器端控制的.
要获取生成图像链接的页面,您可以使用以下内容:
$page = basename(__FILE__);
Run Code Online (Sandbox Code Playgroud)
请参阅basename PHP手册和__FILE__ PHP手册.
此外,代码使用urlencode PHP手动功能来确保属性不会中断.
如果设置,请HTTP_REFERER在$_SERVER数组中查找键:
$_SERVER['HTTP_REFERER'];
Run Code Online (Sandbox Code Playgroud)
将用户代理引用到当前页面的页面地址(如果有).这是由用户代理设置的.并非所有用户代理都会设置此功能,而某些用户代理则可以将其修改
HTTP_REFERER为功能.简而言之,它无法真正被信任.(来源)