- 締切済み
phpのエラーチェックについて質問です!
phpのエラーチェックについて質問です! エラーチェックについてです><; if(isset($_POST['name'])){ $name = htmlspecialchars($_POST['name']); if (empty($name)) { $message = '未入力があります'; と記入してエラーメッセージを表示したい場所に記載してます。 しかし、フォームで <form action="regist2.php" name="form" method="post"> でsubmit押すとフォームが空白でもactionでregist2.phpに送られてしまいます><; エラーがなければ、そのままsubmitでaction=regist2.phpに送りたいと考えております。 なにか解決方法はないでしょうか? ご教授お願いします!!!!!!!!
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- arlquin
- ベストアンサー率23% (3/13)
携帯サイトでページ遷移せずに入力チェックをするのはphpでは不可能だと思います。 理由としてはphpが動作しているのはサーバーであって端末で動作しているわけではないからです。 JavaScriptやflashなど端末で動作するものを利用する必要があるはずですが、 モバイルでJavaScriptは利用出来ないため、Flasからデータの受け渡しをしてあげれば出来るのではないかと思います。 ※私はFlashやった事ないので分かりませんが。 一般的に携帯サイトのフォームの入力チェックは一度ページを遷移させます。 実際には表示され無いページです。 ■例 ・form.php 実際にフォームにデータを入力するページ ↓ ・form_check.php 入力されたデータをチェックするためのページ このページは何も表示されません。 入力項目に誤りが無い場合、そのままリダイレクトさせます。 ↓ ・リダイレクト先 ⇒ エラー時 :エラー表示ページや入力ページへ遷移 ⇒ 正常時 :結果画面へ遷移(仮にcomplete.phpとします。) この様な流れが一般的だと思います。 エラーチェックのページ自体は私なら以下のような形で記載します。 if (empty($name)) { $message = urlencode("未入力があります"); $jump_url = "./form.php?{$message}"; } else { $jump_url = "./complete.php"; } header("Location:{$jump_url}"); exit(); ザックリですが、私ならこんな感じです。 ご参考になれば
- arlquin
- ベストアンサー率23% (3/13)
フォームが空白ならそもそもチェックページに遷移しないようにすると言うニュアンスで間違いないでしょうか? もしそうであるなら アクセスをする端末にもよりますが、モバイルで有れば難しいですが PCからのアクセスで有れば ■JavaScriptでこんな感じで大丈夫だと思います。 //HTML部分 =========================================================== <form action="regist2.php" method="POST" name="フォーム名"> <input type="text" name="入力フィールドの名前"> </form> =========================================================== //JavaScript部分 function check_question(){ if (document.フォーム名.入力フィールドの名前.value == ""){ alert("お名前が入力されていません"); return false; } } ===========================================================
補足
回答有難うございます。 空白ならそのページでエラーをだして、エラーがなければaction=regist.phpへって感じにしたいんです>< ちなみにいま作成してるのは携帯専用サイトです><; 空白がある場合、submit押してもエラーをだして、空白はなにもなく間違いのない内容の場合はsubmit押してactionで飛ばしたいのです・・・