1
我有簡單的PHP代碼,通過電子郵件將URL發送給用戶,其中包含URL中包含的電子郵件地址。在發送之前,我使用rawurlencode()對電子郵件地址進行編碼。發送到Hotmail的已編碼@符號(%40)的URL在URL中被轉換爲@
電子郵件客戶端(本例中爲Hotmail)使用以%40編碼的@符號正確顯示URL。但是,當我點擊鏈接時,瀏覽器會再次轉換爲@導致URL格式不正確。
關於如何確保電子郵件客戶端或瀏覽器(不確定誰是罪魁禍首)的任何建議都不會將URL中的%40解碼爲@符號?見下面的代碼。
$resetlink = "http://www.domain.com/resetpassword/".rawurlencode($email)."/".$email_hash;
是的,確切地說,它只需要雙重編碼。同樣會發生,例如帶參數 - &將需要爲& amp; –
這就是它,謝謝! – zee
'rawurlencode(rawurlencode($ email))' –