[請益] PHP提取URL已刪文

看板PHP作者 (arthurduh1)時間13年前 (2012/06/06 01:18), 編輯推噓1(1018)
留言19則, 7人參與, 最新討論串1/1
我正在寫一個用PHP做成的計數器 可是遇到了一個問題 想請問版上有沒有人可以幫忙解答 m(__)m 這個計數器counter.php的使用方式可以是 在 host2 的某個網站 html 碼寫上 <img href='host1/counter.php'> 其中php檔所在的host1跟呼叫他的host2不一樣 現在遇到的問題就是我如何讓counter.php提取 host2 的 URL (這其實就是網路上計數器網站常常提供的 Entry Page, Exit Page 等等功能) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.243.136

06/06 01:22, , 1F
referer 不過可以隱藏或偽造
06/06 01:22, 1F

06/06 01:22, , 2F
print_r($_SERVER)翻找一下吧
06/06 01:22, 2F

06/06 01:23, , 3F
通常是加個GET參數指名site吧…
06/06 01:23, 3F

06/06 05:30, , 4F
用get參數就可以了,如host1/counter.php?site=b
06/06 05:30, 4F

06/06 05:31, , 5F
為防假冒還可以做個key跟site一起送過去 符合才累加
06/06 05:31, 5F
恩...在計數器網站上看的referer跟entry page好像不是一樣的? referer可以假冒 可是計數器好像還是可以知道你正在看哪個網站 我參考的計數器是 sitemeter http://www.sitemeter.com/ 雖然他不是用PHP 而是用ASP GET方法不使用是因為host2不一定能夠允許我們使用這麼複雜的語法 所以假定他就只能貼上 <img href='host1/counter.php'> 這樣的code 比如sitemeter的計數器只要貼上 <img src="" rel="nofollow">http://sm6.sitemeter.com/meter.asp?site=*****"/> (其中*****只是sitemeter的帳號) 就可以紀錄資訊 包括我想實作的 "目前觀看網站URL" 的功能

06/06 13:03, , 6F
$_SERVER['HTTP_REFERER']
06/06 13:03, 6F

06/06 13:03, , 7F
我比較好奇計數器有必要防止假冒REFERER嗎?
06/06 13:03, 7F

06/06 13:09, , 8F
喔可以耶! 我之前試過不知道為什麼一直不行
06/06 13:09, 8F

06/06 13:10, , 9F
麻煩各位了 感謝!!
06/06 13:10, 9F

06/06 15:59, , 10F
?site=不就是GET變數 你為什麼會覺得這很複雜
06/06 15:59, 10F

06/06 15:59, , 11F
還有那不叫語法 懶得再講了
06/06 15:59, 11F
抱歉,「語法」是我用字不精 我的意思是host2可能沒辦法支援 js 或各種後端語言 應用上這一個圖片可能被多個「事先不知道網址」的網頁存取 所以沒辦法事先決定GET變數要傳送什麼網址 我會說複雜是因為若要取得「事先不知道網址」的網頁URL 解決方案應該要用到 js 或 各種後端語言 而不是單純的HTML

06/07 12:37, , 12F
看不懂你在寫什麼... 你對GET的運作有點誤解
06/07 12:37, 12F

06/07 13:33, , 13F
你的referer讀取的時候是被host2讀取的,所以host1一定是讀
06/07 13:33, 13F

06/07 13:33, , 14F
host2當referer而不是被假冒的
06/07 13:33, 14F

06/07 13:34, , 15F
除非是有人偽造referer去讀host1那個計數器
06/07 13:34, 15F

06/07 13:36, , 16F
另外如果你host1都不能支援這些語言了,那就更不可能做你要
06/07 13:36, 16F

06/07 13:36, , 17F
的功能。
06/07 13:36, 17F
哀呀 我又寫錯了== 上面的host1要改host2 已用紅字做修正 所以如此一來應該能同意host2不一定能夠使用GET傳送「目前瀏覽網頁URL」? ※ 編輯: arthurduh1 來自: 140.112.243.136 (06/07 18:43)

06/07 19:05, , 18F
可以, 用javascript就好了
06/07 19:05, 18F

06/07 19:05, , 19F
但同樣的, 這是可以偽造的...
06/07 19:05, 19F
文章代碼(AID): #1FpZzjIZ (PHP)
文章代碼(AID): #1FpZzjIZ (PHP)