フォームからのデータがまったく来ない場合はこれを疑え

とあるサイトのステージングサーバで動作検証をしようとしたら、開発環境ではちゃんと動いていたアプリがまったく動かない。

 

いろいろ調べていたら、どうやらフォームからのデータが空である。

 

最初に疑ったのは、CakePHPが何らかの理由でリダイレクトかませているのではないかということ。

 

どうもCakePHPは苦手なので、なにか不可解なことがあると「CakePHPがまた勝手に・・・」と思ってしまいがちなところがある、私には。

 

しかし、これは違うようだ。

 

よくよく考えてみると、この現象が起きていたフォームは、CSVファイルのアップロードを受け付けているフォームだった。

HTML的には問題ない。

 

試しに $_FILES の中身を吐き出してみると、これも空っぽ。

 

 

ということはまさか・・・。

 

インフラチームにphp.iniの設定を調べてもらう。

 

「file_upload = Off になってましたぁ(てへっ)」

 

そういうオチは、どっと疲れが来るんだよな、勘弁してください。

 

PHPで、フォーム(特にファイルアップロードのあるフォーム)からのデータがまったく届かない(空である)というときには、自分のコーディングミスを疑うのもいいし正しい(であろう)姿勢かもしれないが、そもそもファイルのアップロードを受け付けていないのではないか・・・それが数年稼働しているサーバであったとしても・・・と思った今日でした。

 

ちなみにこの案件では、PHP5.5とPHP5.6でZipArchiveの挙動が異なるという罠にもハマった。

この案件とは相性が悪いのかもしれない。