スレッド表示 | フラット表示〕 全トピック 920 件中 135 番目 次≫ ≪前

フォームから受け取った文字が文字化け

created: 2007-02-20 22:09 | modified: 2007-02-20 22:44 | reply: 1

[3610] フォームから受け取った文字が文字化け

user: あっち | created: 2007-02-20 22:09
フォームから送信された日本語文字をファイルへ記入する処理なのですが、処理を終えてファイルを覗くと文字化けしています。
なにか解決方法はないでしょうか?

以下がプログラムの一部です。
$s=file("./".$_POST['id']."/init.cgi");//ファイルを配列に格納。
$o="./".$_POST['id']."/init.cgi";

$p="\$pass = '".$_POST['pw']."';\n";
$s[50]=$p;//配列の要素を置き換える。

$s=join("",$s);//配列を文字列に変換
$file=fopen($o,"w");
flock($file, LOCK_EX);
fputs($file, $s);
flock($file, LOCK_UN);
fclose($file);
reply: 3611 返信 編集 削除

[3611] 要エンコード変換

user: ゆうじ | created: 2007-02-20 22:44
こんばんわ。

フォームから得られる文字のエンコードは
フォームを表示する時点である程度制御できますが
絶対そのエンコードで得られるとは限りません。
以下の関数などを活用して
必ず適切にエンコード変換後保存してください。

mb_detect_encoding
mb_convert_encoding


これに加え、magic_quote_gpc = On の場合、
$_GET や $_POST で得られる文字列は '\' でエスケープされています。
この時入力の文字エンコードがSJISだと、
「5C」を含む文字列に余分な'\'が付加されています。
magic_quote_gpc で検索すると
対処策がいっぱい出てきますのでそちらを参考に。


---
まったく本件と関係ありませんが
最近以下のコードを含む質問をよく頂きます。
このロックのかけ方が大変気になってるのですが、
このコードは書籍か何かに載ってるものなのでしょうか。
問題なければ出所を教えていただければと思います。

$file=fopen($o,"w");
flock($file, LOCK_EX);
fputs($file, $s);
flock($file, LOCK_UN);
fclose($file);
Parent: 3610  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 135 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑