Monthly Archives: 4月 2010
addRawPostDataはPOSTじゃなくてinput!!
HTTP_RequestとかHTTP_Client(HTTP_Requestのラッパー)とか使っちゃうわけですが、
昨日うまく動かなくて、調べてたことを纏めておこうと思います。
HTTP_Requestでデータを渡すときの方法が2通り?ありまして、
1個目のパターンが、
$request =& new HTTP_Request();
$request->setURL($uri);
$request->setMethod(HTTP_REQUEST_METHOD_POST);
$request->addPostData(“data”, $data);
$request->sendRequest();
$code = $request->getResponseCode();
$response = $request->getResponseBody();
これの場合、$dataという送りたい値は、addPostDataメソッドで送付しているので、
受け側では、$_POST($postData = $_POST; みたいに)で取れるわけですよ。
次が、
$request =& new HTTP_Request();
$request->setURL($this->_uri);
$request->setMethod(HTTP_REQUEST_METHOD_POST);
$request->addRawPostData($data,false);
$request->sendRequest();
$code = $request->getResponseCode();
$response = $request->getResponseBody();
これの場合、送りたい$dataの値は、addRawPostDataメソッドを利用しているので、
受け側では、$_POSTでは受け取ることができない!わけですよ。
この場合には、受け側で、file_get_contentsやfopenで開いて
php://inputの中身を取得する方法になるようです。
$postData = file_get_contents(“php://input”);
みたいに
知らなかったので、ごっぽり調べることになりました。。。。
Samba環境に日本語ファイル名が保存できない!
まあ、いまさらな話ではあるんですが、自宅でSamba経由で新規ファイルを作成しようと、
右クリックで「テキスト文章」を選んで作成しようとしたわけですよ。
すると、普通「新規ファイル.txt」みたいのができあがるわけなんですが、
—————————
ファイルを作成できません
—————————
ファイル ‘新規テキスト文書.txt’ を作成できません。
ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。
みたいなエラーがでたわけですよ。 で、色々調べましたけど、
Sambaのバージョンによって、日本語ファイルの扱いが違うわけですよね。
そうですよね。
@ITさんに書いてありましたよ。それらしいことが。
Samba 2.2系列までは
[global]
client code page = 932
coding system = SJIS/EUC/CAP/HEXなどSamba 3.0系列までは従来のパラメータは廃止され、代わって新しく追加された、
[global]
unix charset = CP932/EUCJP-MS/UTF-8など
dos charset = CP932
display charset = CP932/EUCJP-MS/UTF-8など
これで、Sambaの再起動「/etc/rc.d/init.d/smb restart」でなおりましたとさ。
こんなんで時間とられてちゃ せわないわい。