重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

お世話になります。

現在、入力フォームの携帯サイトを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>

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

A 回答 (2件)

imodeシュミレータでの挙動もそうですし、携帯電話ごとの挙動も異なってくると思います。


PCのほうでも、IE6でキャッシュ関連は問題が起きたりだとか、キャッシュ以外の様々な挙動がブラウザ各種で違ってきてしまいます。

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

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

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



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

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

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

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

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

お礼日時:2009/06/30 09:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!