自己紹介が遅れました。フォトグラファーでフルート吹きでピアニストのtsukimiyaです。ディノでは(主にPHP関係で)新しいことを真っ先にためして地雷を踏みつける役目です。自分が地雷を踏みつけた経験が他の人の役にたてば幸いです。
さて、今回の話題はPHPを使っていてデータをPOSTした場合、ある一定条件下でPOSTされたデータが消えてしまう、という話です。自分の管理しているサイトで写真投稿のサイトがあるのですが、そのサイトについてこんな情報が寄せられました。
/*
どーも、さっき撮った画像を
**さんのサイトにウプしようとしても出来ないんですが、
必要事項を入れて保存するを押すと、パスワードを入力してくださいと赤字で注意してくるんですが、何故だろう。
使用環境がMacでFirefoxなんでその辺の不具合でせうか?
*/
PHPでアップロード絡みのエラーというと、php.iniのupload_max_filesizeを思いつきます。この設定はアップロードされるファイルの最大容量を指定するものですが、もしこの設定に引っかかっているならエラーを取ることが出来ますし、そもそも「入力したはずの項目が消えてしまう」という状況はおかしい。実際にスクリプトの先頭に
<?php var_dump($_POST) ?>
と書いてみても、確かに全て消えているようです。そこでもう少しphp.iniを見ていると「post_max_size」という項目を見つけました。設定を変えてみたら見事にビンゴ。無事に大きな画像もアップロード出来るようになりました。
わかってしまえばどうってことない問題ですが、エラーも出さずにデータが消えてしまうのはどうなんだろう・・・。と思っていたらPHPのマニュアルにはちゃんと書いてありました。
*教訓
たまにはちゃんとマニュアルを読みましょう

コメント / トラックバックはありません
コメントする