みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

携帯サイトの戻るボタン

お世話になります。

現在、入力フォームの携帯サイトをPHPで製作しているのですが、
入力ページで次へボタンが押された場合に入力内容を検証し、
入力エラーがあれば、エラー画面を表示し、
前の画面に戻らせるという処理を行おうとしています。

エラー画面から戻る際に、設置した戻るボタン(入力画面にsubmitする)で戻る場合は、
入力画面がリロードされ、入力内容をSessionから再表示することができたのですが、
携帯(docomo)の戻るボタン(左矢印)で戻ると、入力ページがリロードされない、かつ以前に入力した内容がクリアされてしまいます。

携帯の戻るボタンでもリロードされるよう、キャッシュをクリアする処理を入れて、以下のようなHTMLを出力するようにしてみたのですが、うまくいきませんでした。

a.php

<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<title>入力フォーム</title>
</head>
<body>
<form action="b.php" method="post">
<input type="text" istyle="1" name="input1" size="20" value="<?php $_SESSION['input1']; ?>">
<p>
<input type="submit" value="次へ" name="submit">
</p>
</form>
</body>
</html>

原因・やり方をご存知の方がおりましたらご教示していただけないでしょうか。
よろしくお願いいたします。

投稿日時 - 2009-06-29 22:54:54

QNo.5085422

困ってます

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

imodeシュミレータでの挙動もそうですし、携帯電話ごとの挙動も異なってくると思います。
PCのほうでも、IE6でキャッシュ関連は問題が起きたりだとか、キャッシュ以外の様々な挙動がブラウザ各種で違ってきてしまいます。

それでも一度、実機での確認はしたほうが良いと思います。

また、エラーの表示に関しては、エラーだった場合、エラー画面へ飛ばないで、入力画面に遷移させてはいかがでしょうか。
入力画面のトップに
「○○の項目は~~を入れてください」
などといったエラーだった箇所を指示する表示をすれば戻るボタンを押される可能性は若干減ると思います。
また、その後の画面で入力確認画面があるのであれば、そこに目立つ文言で、
「戻るボタンで戻らないでください」
といったような文言を入れた方がよいのかな、と思います。

投稿日時 - 2009-07-01 01:29:05

ANo.1

キャッシュの件については、毎度困っていたので、少し調べてみました。

http://blog.bluetune.net/archives/000075.php
こちらのブログのエントリが参考になりそうです。

結果的に、header関数で
-------------------------------------------------------
header("Last-Modified: ". "Fri, 30 Oct 1998 14:19:41 GMT");
-------------------------------------------------------
としてやればキャッシュが残らなくなるのだそうです。

投稿日時 - 2009-06-29 23:49:01

お礼

ご回答ありがとうございます。

header("Last-Modified: ". "Fri, 30 Oct 1998 14:19:41 GMT");
を追加してみたのですが、やはりリロードされませんでした。

iモードHTMLシミュレータで見るのと、実機で見るのは違ってくるものでしょうか?

投稿日時 - 2009-06-30 09:33:21

あなたにオススメの質問