2016-11-20 8 views
1

ユーザがクリックするためのリンクをテキストメールで送信する必要があります。ユーザー確認メールです。私が抱えている問題は、URLヘルパーが文字をエスケープし続けることです。私はすべての可能な組み合わせで以下を試してみましたが、役に立たないと感じています。 '@' と '&' charachtersがエスケープbeeingているところCakePHPでURLヘルパーをエスケープする

echo $this->Url->build([ 
    "controller" => "Users", 
    "action" => "verify", 
    "?" => ['email' => $email, 'hash' => $hash] 
    ],[ 
    "escape" => false, 
    "fullBase" => true 
    ]); 

これはhttp://www.mydomain.co.uk/users/verify?email=chris%40domain.co.uk&hash=b56a4eea3b495db226888f2f89e7678fになります。

もう1つの問題は、cakeがハッシュ変数にアクセスできないことですが、電子メール、つまり、

echo $this->request->query('hash') //doesn't print anything 
echo $this->request->query('email') //prints email with the @ symbol 
+1

を解決するためにhtmlspecialchars_decode(の$ this - > URL - >ビルド())を使用?ドキュメントでは、配列を2番目の引数として渡すことは3.3.5で追加されただけであることを示しています。 –

+0

@GregSchmidt私は3.2.13を使用しています。これは3.3.5より前のビルド関数で特殊文字をエスケープできないことを意味しますか?もしそうなら、あなたはそれをやり遂げるための別の方法を知っていますか? – ChrisBull

答えて

0

バージョンの不一致を指摘してくれたGreg Schmidtに感謝します。

FYI;エスケープはCakePHPバージョン3.3.5以降でのみ使用できます(11月16日現在)。

私はあなたが使用しているケーキのバージョンを具体的に問題

関連する問題