2010-09-16 40 views
2

我的任務是建立一個系統,允許我們公司的某個人發送一封電子郵件,並附上一個pdf文件的鏈接,該文件將保存在我們的網絡服務器上。收件人可以按照鏈接查看我們通常銷售的通訊。我們的想法是我們這樣做了三個月,然後看看他們是否願意繼續並支付全額認購。控制試用訂閱的訪問

我已經建立了註冊部分,但我試圖找到發送電子郵件的最佳解決方案。以下是我想到的,但如果其他人有更好的東西,我很感興趣。

1)在發送電子郵件時,生成一個通用代碼,並將其附加到URL中。使用會遵循url,它會檢查我們的數據庫中的「ok」條目,並通過/失敗訪問它們。這看起來沒問題,但鏈接可以傳遞,甚至可以加載到任何人都可以訪問的公共站點。

2)爲了擴展上述內容,我想也許我會有「一次點擊」類的事情,一旦我知道鏈接被點擊,它可能會過期,所以後續點擊失敗。缺點是如果他們點擊查看並關閉他們的窗口,他們就完成了。同樣,如果他們在下載完成之前點擊並且他們的計算機崩潰,他們也會被鎖定。我不知道是否有一種方法(在我的PHP中)確認文件下載已完成...

3)我可以把文件放在/trials/201009/[email protected]文件上傳的地方,鏈接的名稱是隨機的,所以很難猜測。然後我可以使用.htaccess使用不同的密碼保護每個月的文件夾。這可能會變得單調乏味,並且最有可能讓用戶惱火。

我們不想強迫他們來管理自己的密碼B/C不必登錄和記住另一個帳戶可能阻礙參與。

感謝您的任何想法或指針。 D.

+0

我問了一個後續在這裏:http://stackoverflow.com/questions/3755268/control-access-to-filesystem-with-php。原諒我,如果它應該結合起來。看起來好像把它分開,因爲它是相關但不同的。 – Don 2010-09-20 20:37:21

回答

1

我想說,它使用隨機代碼進行每個電子郵件地址的驗證,並在5天后過期。如果您限制首次訪問網址哈希的ip訪問權限,那也可以起作用,但可能會影響合法用戶/客戶。

在任何情況下,都可以讓合法用戶在需要時輕鬆請求新的驗證碼。這樣,即使您的任何限制對您的潛在客戶不便,他們也不會爲此而勾選。

最後,考慮到,如果他們喜歡的PDF格式,並希望分享它,他們可能會只共享PDF本身就,而不是一個鏈接麻煩。

0

首先,要意識到,只有這麼多,你可以在這裏做你的最終。您允許用戶下載PDF,之後他們可以根據需要(合法或其他方式)處理它。因此,防止傳遞鏈接不一定會阻止人們共享或發佈PDF本身。也就是說,如果你想讓它變得更難一點,你可以對你的建議#2做一個變化,在點擊它之後你在鏈接到期之前建立某種時間延遲。您還可以限制鏈接爲文件提供服務的次數。因爲人們有各種各樣的連接速度,並且因爲我不知道您的PDF有多大,所以我不能確定如果您選擇使用它,時間延遲應該是多少。

就像我說的,雖然,如果有人決心共享文件,他們可以很容易地做到這一點。

0

另一種可能性是,既然您已經知道了人員的電子郵件地址,請在他們的電子郵件鏈接中爲他們形成特定的網址。

所以用戶會點擊一個鏈接http://www.yourdomain.com/[email protected]

保持一個表格,表格中的電子郵件地址以下數據。

ID EMAIL_ADDR read_date EXPIRE_DATE

當他們點擊鏈接檢查,看他們是否之前,如果他們有檢查沒有過期讀它。如果它沒有,向他們提供PDF,如果它給了他們一個頁面,上面寫着「對不起,您的試用已過期../」

如果它第一次點擊它,然後設置read_date並計算有效期限和設置。

或者您可以選擇生成一個散列或其他東西,並使用散列來標識用戶而不是他們的電子郵件地址。

您也可以在表格中設置一個下載列,並在每次點擊鏈接時通過遞增下載列來阻止他們下載超過二十次。