PHPでシリアライズしたデータをクッキーに保存しようとしているのですが、文字化けしてしまいます。mac osでchromeブラウザを使用しています。


base64_encodeを利用するといいような記事も見つけたのですが、解決には至っていません。
エンコード方法など、何か解決策になりそうなことがありましたらご教授お願いしますm(_ _)m

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2011/11/14 17:05:05
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:standard_one No.1

回答回数252ベストアンサー獲得回数23

えーと、状況がよくわかりませんので思い当たることを一通り書いておきます

というか「base64_encodeを利用するといいような記事も見つけたのですが」が答えじゃないですか?

mbstring.encoding_translationの値はどうなってますか?

***

まず、クッキーのやりとり自体は問題ないですか?

送りだす方

$val = serialize("データ");

$param_val = base64_encode( $val );

setcookie ( 'param_name', $param_val );

読みだす方

$cookie_data = $_COOKIE['param_name'];

$param_val = base64_decode($cookie_data);

$val = unserialize($param_val);

***

クッキー関係なく文字が化けるならこのへんを調べて下さい

mb_convert_encoding()

***

クッキー関係なく大体読めるんだけど一部化けるんならこのへんを調べて下さい

htmlspecialchars()

stripslashes()

id:kodairabase No.2

回答回数661ベストアンサー獲得回数80

mb_convert_encoding関数を使って変換してみてください。

  • id:tdoi
    なぜ、複数も質問作るのか分かりませんが・・・

    どんな文字列を入れても化けますか?
    特定の文字だけ化けるとかなら、magic_quotesとかを疑ってみると良いかもです。

    そもそも、どんなコードを書いて、どんな風に文字化けを確認してるか分からないと答えにくいです。
  • id:tobeoscontinue
    phpBBはシリアライズしたデータをクッキーで受け取っていましたが
    私は過去にphpBBで管理者権限を奪われ改竄されました。
    クッキーは割と簡単に改竄可能です。
    外からくる情報は信用できないということを考慮する必要があると思います。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません