• 締切済み

携帯のクイズについて

携帯のクイズについて 携帯での4択クイズで10問を作っていましたが、1問のみのクイズにしました。 流れは以下の通りです。 問題インデックスから各問題へ移動 ↓ 4択クイズで、選択肢のどれかを選び、決定ボタンを押す ↓ 正解か、不正解がの表示と問題インデックスへ戻る為のアンカータグがある といった具合となっております。 不正行為を防ぐ為に、正解か、不正解がの表示の時点で携帯の戻るを押したら、 「不正な操作がありました」 という表示を入れたいのです。 なお、上記の処理は1つのファイルで処理しています。 どなたか、アドバイスをお願いします

みんなの回答

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.3

俺も携帯ブラウザの挙動を把握しているわけではありませんので、一応、その前提でお聞きください。 携帯の戻るボタンを使った場合、サーバーのほうに何もリクエストしていないと思いますので、前回表示した時と別の動作をさせると言うのは無理な気がします。 JavaScriptが動けば、また別の話しですが、一般的な携帯だと それも望めません。

uheguntes
質問者

お礼

色々考えて試した結果、 ドコモの場合は、phpでheader文を auの場合は、「戻る」ボタン無効に ソフトバンクの場合は、「2重解答防止」 という風にしました。 様々なアドバイスを頂き、ありがとうございました

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.2

とりあえず、そちらの一連の質問を ざっと見たところ、 「携帯で戻るボタンを押した時、キャッシュを使わず、できれば再読み込みさせたい」ってのが まだ クリアできてないんですよね? 俺も 最近 携帯のは 作ってないんで、かな~り憶測の域を出ませんが、多分、これって クリアできない問題だった気がしますよ? 試しに、↓これ やってみましたけど、携帯の戻るボタン使っちゃうと、普通に前に表示したページを そのまま表示しちゃうんですよね。 > header("pragma: no-cache"); > header("cache-control: no-cache"); > header("expires: 0"); 携帯ブラウザの挙動とか よく分かりませんので、多分に憶測ですが、↑のキャッシュさせないってのは、<a>タグとか使ってリクエストした場合に有効なだけであって、機械的な戻るボタン使われると、やっぱり そのまま前と同じページを表示しちゃうんじゃないかと思います。 世代とか機種とかによって違うのかもしれませんが、そこまで詳しくは調べてません。 なので、戻るボタンを使われるのは仕方がないと諦めて、#1さんのような方法しかないかもしれません。 cookieなり sessionなりで、既に回答してあるクイズの回答を保存しておいて、戻るボタンで戻って、別の回答をしようとしたら、保存してある情報をチェックして「回答の変更はできません」と表示する方法なら出来ると思います。

uheguntes
質問者

補足

色々と試行錯誤していますが、 戻ったときに、別ページに飛ばして、 「不正な処理が行われました」 みたいにできますか??

  • nine999
  • ベストアンサー率44% (512/1140)
回答No.1

手軽にやるならば、cookieを使って、不正解のページに入るとフラグを立てます。 表紙では不正解のフラグをチェックするようにして、フラグがあれば注意を出します。その直後にフラグを消すか、消すために別のページに一旦移動させると良いかも。 cookieを使えばページをまたいでも得点加算をすることができます。 手軽ではありますが、携帯ブラウザが対応しないと使えません。 CGIを使ってページの移動を1つ1つ追いかけることもできるでしょう。 URLにアクセス者毎にコードを付けておいて、それを追跡します。 たまにURLの最後に「?~」とついているのが、そういうコードです。CGIで受信して処理しますが、それを管理するデータベース(ログ)を作らないといけないので、色々大変です。

uheguntes
質問者

補足

今現在、正解か不正解かの部分のみを、切り離して、別ファイルにしました。 問題の決定ボタンのアクションの部分に正解か不正解かの部分のみのページを入れたのですが、 うまく行きません

関連するQ&A

専門家に質問してみよう