2011-06-24 17 views
1

URLに電子メールアドレスを含む電子メールでユーザーにURLを送信する簡単なPHPコードがあります。私はそれが送信される前に、電子メールアドレスをエンコードするためにrawurlencode()を使用しました。URLに符号化された@記号(%40)がURLに変換されてURLに変換されます

電子メールクライアント(この場合Hotmail)は、@記号が%40としてエンコードされたURLを正しく表示します。しかし、リンクをクリックすると、ブラウザは再び@に変換され、不正な形式のURLが生成されます。

電子メールクライアントまたはブラウザ(誰が原因であるかわからない)を保証する方法については、URLの%40を@記号にデコードしないでください。以下のコードを参照してください。

$resetlink = "http://www.domain.com/resetpassword/".rawurlencode($email)."/".$email_hash; 

答えて

0

まあ、たとえばこれはあなたが何を意味するのかである場合、私は知らないが、あなたは%2540のような何かを行うことができ...

http://www.google.com/search?q=%2540

http://www.google.com/search?q=%40

+1

はい、ちょうど、それは二重エンコーディングを必要とします。同じことが起こります。パラメータ - &は、& ampである必要があります。 –

+0

これは、ありがとう! – zee

+0

'rawurlencode(rawurlencode($ email))' –

関連する問題