2009-08-31 19 views
0

我正在寫一個PHP應用程序,我打算出售其副本。如果您需要知道,它用於允許用戶使用即將到期的下載鏈接下載文件。將PHP腳本使用情況統計信息發送到外部腳本的最佳方法

我想知道當我的一個銷售的應用程序生成下載。

什麼是將通知發送到我的服務器上的php應用程序的最佳方式,它只是告訴它「嘿,你的腳本之一已經做了什麼」,什麼是最好的方法來保持計數我的服務器獲得這種性質的「命中」數量?數據庫記錄或平面文本文件?

我問,因爲我想在我的主頁上顯示下載的總次數的運行計數,有點像:「負責X下載到目前爲止」

一個純粹的PHP解決方案是想法,但我想ajax電話也可以。越簡單越好,因爲我所做的只是一個簡單的$ var ++,只是在更大的範圍內,對吧?

任何人都在意把我指向正確的方向嗎?

回答

2

無論是通過javascript或php,你需要在你的服務器上設置一個URL,以便其他腳本可以調用。該URL然後應該指向一個增加計數器的腳本。我會在數據庫中添加一個數字並增加它,或者如果您想要更詳細一些,可以按月/客戶端等方式輕鬆打破此情況。

如果您從PHP調用URL,請注意以確保URL不會阻止執行 - 即:如果您的網站停機,您銷售的腳本不會等待您的服務器響應。你可以通過各種方式解決這個問題 - 我會通過註冊關閉功能來解決這個問題。

沒有這個問題的替代方法是使用JavaScript加載url或作爲圖像(但它們都可能會稍微不準確) - 我會自己去圖像,因爲你會得到稍微更好的瀏覽器支持。另外,請記住,除非用Zend Guard之類的東西編譯代碼,否則任何人都可以刪除遠程調用並防止計數器遞增!

+0

我不太在意用戶的細節,我只需要一個簡單的計數,所以我想我可以去圖像路線。假設我因此開始獲得高流量,是否有任何方法可以使重複的數據庫調用對我的服務器造成較小的影響? 另外,我並不太擔心人們搬走櫃檯,反正它可能是自願的。我可能需要保護許可證密鑰和xml-rpc或SOAP調用等某種類型的密鑰進行身份驗證。 我會爲此主題開始另一個問題。謝謝你的幫助。 – 2009-08-31 18:49:28

+0

如果你得到很多交通..首先,如果/當它發生,我會擔心。 在數據庫中增加一個字段應該可以很好地擴展 - 但是你總是可以使用類似memcacheq的東西來排隊更新,所以當它們進來的時候處理它們很快,並且從隊列中批量處理它們。 – benlumley 2009-08-31 20:37:54

1

是的,可以調用的東西是什麼。 SOAP可能是最簡單的方法。

http://php.net/soap

Benlumley有很多關於這個解決方案的有效點。

此外,如果您想要將計算抵消到用戶瀏覽器(使Web服務調用可能會讓購買應用程序的用戶煩惱,帶寬/ CPU成本),那麼AJAX可能是更好的解決方案。

相關問題