フォーム送信の処理を作成していたときの話。
PCでは問題なく動いていたのに、iPhoneからの動作を確認してみると、Submitをクリックしてもウンともスンとも言わない。
解決までちょっと手間取ったのでメモ。
問題の処理
プログラムはざっくりと、以下の構造だった。
form.html
:
<form action="confirm.php" method="post">
<input type="text" name="text">
<input type="submit" name="regist">
</form>
:
confirm.php
:
if (is_set($_POST["regist"])) {
// 登録処理
}
:
この状態で、PC(Firefox使用)では「登録処理」を通るが、iPhone(Safari)では通らない。
原因
ネットで調べると、Safariのバグだとか何とかいろいろ書かれていたけど、いろいろ試しても解決せず…。
仕方ないので、処理を確認してたら、どうやらSafariではsubmitのPOSTデータを受け取っていないような動きをしていた。
他のPOSTデータは受け取っていたので、処理を修正して対応した。