0

setcookie()関数が引用符などの特殊文字をエスケープすることを発見しました。私はこれらのゴミのシンボルを一掃することでこの問題を解決しました:

$new_avt = str_replace("\'","",$_COOKIE['avatar']);
$new_avt = str_replace('alt=','',$new_avt);

しかし、私はこの解決策が醜いと思います。さらに、ご覧のとおり、「alt」プロパティを削除する必要がありました。これは、その中のエスケープシンボルを正しく削除できなかったためです。私が思いついたこれに対する他の唯一の解決策は、エンコードされた文字列をcookieに書き込み、cookieがフェッチされたときにそれをデコードすることです。このソリューションはstr_replace()よりも高速ですか?より良い方法はありますか?

御時間ありがとうございます。

4

1 に答える 1

2

大量のデータをCookieに保存している場合は、代わりにセッションの使用を検討することをお勧めします。これにより、リクエストごとにクライアントとの間でデータを送受信するのではなく、サーバーにデータが保存されます。シリアル化できる変数はすべて、セッション変数に格納できます。http://www.php.net/manual/en/intro.session.phpを参照してください

于 2011-05-10T12:44:42.343 に答える