2012-01-12 20 views
2

我用javascript變量是這樣的:什麼解碼PHP中的「email%2540yahoo.com」值?

var email = encodeURIComponent($('input[name=\'email\']').val()) 

email顯然被編碼並在發送給服務器產生這樣的:email%2540yahoo.com

在PHP什麼功能將正確解碼此值?

我使用html_entity_decode

+0

[urldecode](http://php.net/manual/en/function.urldecode.php)(x2) – Sjoerd 2012-01-12 08:41:15

+0

該郵件被urlencoded兩次 – im3r3k 2016-02-02 20:16:06

回答

4

在PHP什麼功能將正確解碼此值試過嗎?

你不需要解碼任何東西。 $_GET["email"]$_POST["email"]將工作得很好。 encodeURIComponent函數用於對url進行正確的url編碼,以避免導致URL無效。如果您有一個有效的網址,PHP將成功讀取參數。

0

嘗試urldecode(<value_to_decode_here>);

3

爲@正確的URL編碼爲%40。

當使用重寫規則重定向一個URL(例如來自電子郵件的編碼@字符)時,它將被重寫爲%2540(%編碼爲%25)。如果您不斷重寫/重定向,則每次都會用%25替換%,最後以%25252540(或更多25,您得到圖片)結束。

例如點擊此:

http://example.org?email=info%40example.org 

會產生重寫之後和使用重寫規則重定向:

https://example.org?info%2540example.org 
在瀏覽器地址欄中

,不正確地轉化爲信息@例子.org在PHP中。

相關問題