• ベストアンサー

スマホサイトのフォームについて

スマートフォン用のフォームページを作成したのですが、ひとつ問題があって困っています。 添付ファイルが使えるフリーのPHPを使っているのですが、入力後、確認画面に移りそのまま送信するのは問題ありません。 ただ、入力後、確認画面に移り、前のページ(入力画面)に戻った後、再び確認画面に移った直後にリロードが始まり、未入力状態の入力画面に戻ってしまいます。こうなると何度再入力しても同じ結果になってしまいます。 どうしても解決できないため、別のCGIのフォームに切り替えたのですが、これも同じ結果です。 スマートフォンならではの理由があるのでしょうか? それから、この状態の解決方法を教えてください。 よろしくお願いします。

  • HTML
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

原因はわかりかねますが、あまり経験したことのないトラブルですね。  ひょっとして分岐処理を間違っているのでは 私は、フォームに関しては基本的に下記のフローで作成します。 プログラムの呼び出し  フォーム入力なし → (1)フォーム出力  フォーム入力あり   確認済み値あり → データ処理 → 完了メッセージ出力   確認メッセージなし → (1)フォームデータ記入済みフォーム出力 としています。  フォーム自体もこのCGIから出力させるようにしています。そうする事でフォーム値があればそれを含めて表示しますし、なければ初期フォームの形で出力されます。  それを受け取ると、入力漏れのエラーがあると、その部分を朱記したフォームを再出力、確認済み値がないと確認画面を表示します。  確認画面自体もフォーム値を引き継いでいますから、送信するとデータ処理して完了、なければ再びフォームに値を入れた状態で出力  としています。

eos1941
質問者

補足

回答ありがとうございます。 フォームで使ったPHPやCGIはフリーのものを使っていて、新規で作ったものではないんです。ただスタイル以外はいじっていません。 また、PCで確認すると質問をしたような状態には全くならず、普通に使えます。なので、スマートフォン特有のことなのかと思っているのですが、それが「何」なのかがわからなくて、先にすすめない状態です。

関連するQ&A

  • 問い合わせフォームの作り方

    問い合わせフォームには、入力画面や入力確認画面などがありますが、作成するページは次の4つで問題ないでしょうか? (1)入力画面 (2)入力内容の確認画面、 (3)「必須項目が入力されてい」を赤字で表示した再度入力する画面 (4)送信しましたの画面 そして、上記の4つのページを作り、PHPまたはCGIを作れば良いのでしょうか? また、バリテーション(検証)機能など、付け加えておいたほうが良い機能はあるでしょうか?

    • ベストアンサー
    • CSS
  • 送信フォームから受け取った情報を反映させたい

    PHP4を使用しています。 送信フォーム.html→確認ページ.php であれば、受け取った情報を簡単に変数に取り込んでくれます。 しかし、送信フォームのチェックを行うために、 制御.phpというものをつくります。 送信フォーム.html→制御.phpという状態に して(form actionの行き先)、 制御.phpで確認ページ.phpを読み込んで表示させるというものをつくろうとしています。 これをすると、 確認ページ.phpの読み込みはきっちり行われます。しかし、送信フォーム.htmlで入力してもらった内容が確認ページ.phpに取り込まれません。 hiddenなどを使用してもうまくいきません perlではできたんですが・・・やっぱりphp では難しいものなんでしょうか?

    • ベストアンサー
    • PHP
  • iPhoneのChromeでフォームの値が消える

    素人ながら、PHPを利用し、なんとかPCサイトとスマートフォンサイトで問い合わせフォームを作成しました。 (1)入力画面 (2)確認画面 ※必須項目が未記入なら「戻る」。※必須項目が記入済みなら、「戻る」または「送信」となっております。 (3)送信完了画面 しかし、問題がありまして、上記(1)の問い合わせフォームを入力し、(2)の確認画面のページになってから戻るを押すと、iPhoneのChromeのみ入力したデータが消えてしまいます。 ※ちなみに、端末はiPhone5cになります。 iPhone5のサファリ、アンドロイドのChromeなどでは、戻るをしても入力したデータは残っておりました。 iPhoneのChromeで戻っても、データを残すには、何か特別なコードなどを入力する必要があるのでしょうか? どのような回答でもかまいませんので、何卒アドバイスを頂ければと思います。

    • ベストアンサー
    • PHP
  • Firefox フォームデータ

    ・POSTでフォームデータを送信された後のページをリロードすると 確認 ページを表示するにはフォームデータを再度送信する必要があります(中略) 再度送信する場合はOKを、送信しない場合はキャンセルをクリックしてください。 というパネルが出てきます。 これを出さないようにし、リロードしただけで自動的にOKを押した状態にしてくれるような 設定や拡張機能はありますでしょうか?

  • フォームについて

    お問い合わせフォームの流れについて質問です。 現在の流れを書きますと・・・ 1:フォームに入力し確認ボタンをクリック 2:エラーチェックを行う 2-a:エラーがあればページ移管せずメッセージ表示 2-b:エラーがなければPOST値をSESSIONに代入し確認画面へリダイレクト 3:確認画面で送信ボタンをクリックで送信ページにリダイレクト 4:送信ページでメールの送信を行いSESSION破棄 こんな流れが自分の中で基準となっているのですが、セッションだと最終的に リダイレクトするので、確認画面から入力画面に戻ると入力値が消えることや IEでページがうまく表示されないことがあるので、できるだけPOSTで対応したく 思っております。 入力画面でformのactionを自分自身としているので、これを確認用のページに 指定してやれば問題ないのですが、エラーがあろうがなかろうが確認用のURLに 変わってしまいます。 エラーがあるうちは、画面移管させたくないので何かいい方法はないかと思って いるのですが、皆さんはどのような流れでフォームを作成しているのでしょうか? おおまかな流れで結構ですのでアドバイスをいただければと思っております。

    • ベストアンサー
    • PHP
  • フォーム送信後の戻るボタンの挙動について

    フォーム送信後の戻るボタンの挙動について PHPでホームページの一部を更新できるシステムを作りました。 項目一覧ページ → 編集ページ → 編集確認ページ → 更新後再度一覧ページへ、といったフローで更新がおこなわれます。 このとき、通常だと確認ページからブラウザの戻るボタン、もしくは画面内の戻るボタンを押すと、編集ページに戻り、入力時の情報がフォーム内に残っているのですが、編集ページを開いてから10分程度待ってから入力・送信後に確認ページから戻ると編集ページのフォーム内に入力したはずの入力情報が消えてしまいます。 おそらくサーバ(Apache)かPHPの設定によるものだと思うのですが、考えうる設定としてどんなものがあるのでしょうか。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 入力フォーム後の確認ページの作り方

    今、入力フォームを使ったWebページを作っています。 アンケートなどに回答すると、「これでよろしいですか?」と、 記入ミスが無いか確認できる画面が、送信ボタンを押すと表示 される場合がありますが、これってJavaScriptのみでつくるこ とは可能ですか?それともCGIを組み合わせないとダメですか?   入力フォームで入力された値をJavaScriptで作った変数に格納して、 その変数を別ページ(確認ページ)で読ませてこのようなページが できないものか考えているのですが、私の力量ではうまくいきませ んでした。   是非みなさんのお知恵をお借りしたいと思います。 よろしくお願いします。

    • 締切済み
    • CSS
  • 完全なセッション破棄をしたい

    現在運営中のアンケートフォームを改善したいと思い、質問させていただきます。 現在のアンケートフォームは、入力画面.php→確認画面.php→メール送信.php→完了画面.htmlの4ファイルで構成していて、画面としては3画面です。 また、入力値についてはセッション管理をしています。 メール送信後は、以下の命令でセッション破棄・完了画面.htmlの呼び出しを行っております。 $_SESSION = array(); session_destroy(); header("Location: 完了画面.html"); ところが、セッションが完全に破棄されておりません。 具体的にあげますと、完了画面でブラウザの戻るをクリックして確認画面.phpへ戻り、「ページの有効期限が切れています」と表示されるためリロードを行うと値が入った確認画面が表示されてしまうのです。 ページの有効期限が切れていますうんぬんはかまわないのですが、リロードした時に破棄したはずの値がなぜ表示されてしまうのでしょうか。 また、最終的に求めている「同じ内容が二重送信されないようにする」のために、どのように修正すればよいでしょうか。 アドバイス、お願いいたします。

    • ベストアンサー
    • PHP
  • フォーム内の操作で・・・

    JavascriptとCGIを利用しています。応募フォームを作成し、氏名等を入力してもらい、送信できるページを作成中です。例えば応募フォームを入力中に前のページを確認できるようにしたいのですが、その時に入力途中の内容を保持し、ブラウザの【進む】ボタンか何かで応募フォームを再度表示させた時、前の入力内容が表示上残るようにしたいと思っています。過去の質問で似たようなものがあり、いろいろ考えてみたのですが解決出来ませんでしたのでお願い致します。 (1)ブラウザの【戻る】や【進む】を利用する場合の方法 (2)<form action="aaa.cgi">のsubmit等でやり取りする方法 どんな方法でも良いです。 (2)の方法の場合【送信】ボタンがフォーム内にあり、<input type="txt">で入力した値を【送信】の時と【戻る】の両方で利用したい。 出来れば簡単なもので結構ですのでコードのサンプルがあるとうれしいです。お願い致しますM(V_V)M

    • ベストアンサー
    • HTML
  • サイトを引越したら?

    こんにちわ。 いつもお世話になっております。 今回、サーバーを引越したのですが、引越し先でCGIが動かない?ようです。 簡単なCGIで、前サイトでは全然問題なく動いていたので、CGIの方には問題ないとは思うのですが… CGI処理内容↓ ◆HPのフォームからのお問合せ◆ 1.フォームにデータを入力してもらう 2.内容に記入漏れがあるとエラーメッセージを表示 3.全て記入が終わり、送信ボタンを押すと確認画面を表示 例)名前:○○○   E-mail:aaa@bbb.ne.jp   以上の内容を送信します、よろしいですか? 4.送信を押すと内容を送信 5.指定されたアドレスに上記の内容を送信 3までは処理が出来ているみたいです。(確認画面は表示される) でも、指定したアドレスにメールが来ないんです。(アドレスに間違いはありません、確認しました) 何が問題なのでしょうか…? 初歩的質問ですが、困っています。 皆様のお知恵をお貸し下さい。。

    • ベストアンサー
    • CGI

専門家に質問してみよう