2014-01-31 60 views
0

我正在創建一個網址,網址的結尾有用戶名,用戶名可以有點。它也可以在最後包含點。允許點在網址的末尾

當我創建url並將其鏈接到用戶鏈接時,該點確實出現在鏈接的末尾,但不作爲鏈接的一部分,因此當用戶單擊該鏈接時該點將被忽略並傳遞錯誤的網址。

我在最後添加的用戶名是數據庫中的變量名,所以我不知道如何解決這個問題。

+0

你能否提供你的PHP代碼分配網址? – krishna

+0

我正在使用opencart框架,在模型文件中使用此代碼發送郵件 $ message。='您的前端網站是'.HTTP_SERVER.'user /'.$ data ['company']。「\ n \ n」 個; \t \t 設置發件人的電子郵件ID之後,接收電子郵件ID $ MAIL->發送(); 我使用上述功能來發送郵件 – saurabh

回答

0

最好的辦法是發送HTML格式的電子郵件。這樣,您可以直接決定鏈接的內容,並防止用戶電子郵件客戶端發揮自己的魔力。

另一種可能性是URL編碼點。請參閱此問題/答案:Encode the url including hyphen(-) and dot(.) in php

+0

謝謝你的解決方案。有效 – saurabh

0

換句話說,您以純文本格式發送鏈接,並且想要更改算法以從您的收件人使用的所有不同的100個電子郵件客戶端使用的文本中提取URL。你顯然不能。

你可以欺騙大多數分析工具,如果你的URL編碼的點:

http://example.com/foo%2E 

...或者你可以簡單地生成適當<a href=""></a>標記HTML電子郵件。

0

如果不是發送用戶名發送用戶標識(可能是一個數字),您的問題就會消失。

這應該很容易由電子郵件客戶端處理。

我做的另一件事,雖然它需要更多的程序設計,但是發送簡單的簡單URL並沒有被破壞的風險。

例如,我會送什麼樣

http://example.com/profile_123711611121

然後在服務器端,使用URL重寫我攔截,並把它傳遞給知道什麼網址手段和不正確的重定向一個PHP代碼一個更復雜的網址,如:

http://example.com/users/profile/update_profile.php?id=123711611121

第一個URL將被很好地解析,它也可以很方便地複製非技術人員粘貼。

第二個URL可能分爲兩行,未正確解析等。

總之,您正在控制您通過電子郵件發送的URL。讓你和你的用戶變得簡單! :)