2011-10-05 32 views
0

我想從我的網站註冊證書(圖片)通用代碼證書只會顯示在他的網站上.for example excple abc.com是我的註冊會員,他放置代碼在他的網站,如波紋管功能只需要顯示註冊會員的證書(圖片)

img src="mysite.com?member=abc.com" 

或任何代碼(如Facebook社交插件或者像Facebook等插件) 當從abc.com其調用的代碼會顯示證書(圖像),但是當同樣的代碼適用於另一個位置,如www.def.com證書(圖片)不應顯示。

+2

我猜測「聯合」意圖是「生成」。 – Pointy

回答

2

你可能想要做這樣的事情:

1創建一個名爲certificate.php

2您的服務器上的PHP文件允許用戶訪問這樣的:<img src="http://www.yoursite.com/certificate.php?member=abc.com" />

3檢查對於HTTP_REFERER

4 $ _ SERVER變量看看是否能HTTP_REFERER包含正確的域名(abc.com)

5顯示/或不顯示圖像

$member = $_GET['member']; // Validate this field against an allowed list before continuing 
$referal = parse_url($_SERVER['HTTP_REFERER']); 
$hostname = str_replace('www.', '', $referal['hostname']); // Remove www. part 

if ($hostname == $member) 
{ 
    // This request is coming from an abc.com website 
} 
else 
{ 
    // I don't this think is coming from abc.com website 
} 
+0

我想你會想看看Referer。但是我假設這種方式應該是有效的,最終用戶訪問abc.com,abc.com返回一個引用mysite.com上圖像的頁面,mysite.com返回證書圖像或者山羊圖像,或其他。 –

+0

通過修改請求中的標題數據可以欺騙Referals。 REMOTE_ADDR不能,因爲這是響應被髮回的IP地址。 – Tom

+2

但REMOTE_ADDR不包含正確的信息來驗證。 REMOTE_ADDR只是J. Random用戶電腦的IP地址。我理解這個問題的方式是,OP希望abc.com能夠將其嵌入到網頁中(「他將該代碼放在他的網站上」)。所以abc.com不會從mysite.com獲取圖像。即使Referer頭部可能被欺騙,我認爲這是他正在尋找的東西。 –