5

重複の可能性:
URLでbase64でエンコードされた文字列を渡す

ユーザーに送信されるURLの作成に取り組んでいます。次に、ユーザーがURLをクリックすると、このURLからユーザーが誰であるかがわかります。

したがって、base64エンコードを使用してこのリンクに追加したすべてのデータ。ただし、ユーザーがリンクをクリックすると、エンコードされたURLに「/」が含まれていてzendフレームワークルーターがそのルートを見つけられないため、404ページにリダイレクトされます。

'/'を抑制できる方法はありますか?試しhtmlentitiesましたが、うまくいきませんでした。

4

2 に答える 2

3

JoeRiggsのCreateURLSafeEncryptedStringを強くお勧めします。

提供されているコードは手続き型ですが、OOへの変換は非常に簡単です。私はあなたがしていることをするためにそれを使用しました。そこでは、ユーザーがクリックしてアカウントをアクティブ化するために、いくつかの情報(通常はユーザーの電子メールとIDのハッシュ)がエンコード/暗号化されます。

確認したい関数はurl_base64_decodeandurl_base64_encodeで、特定の文字がURLセーフになるように書き直されます(たとえば、削除/してに置き換えます~)。

[編集]

上記のコードに基づく私のクラスのコードパッドは次のとおりです。http://codepad.org/lzevA4k1

使用法:

$cryptUtil = new RPK_Crypt();
$string = 'Unencrypted string';
$eString = $cryptUtil->encrypt($string);
$dString = $cryptUtil->decrypt($eString);
var_dump($dString == $string); //true
于 2012-10-22T14:43:31.997 に答える
-1

+chars 、/およびのURLエンコードが必要だと思います=urlencode()Base64でエンコードされたパラメータを使用してみてください。

PS:ちなみに、これらは変更になります:+=> %2B/=>%2Fおよび==>%25

于 2012-10-22T14:19:56.167 に答える