• ベストアンサー

戻りボタンについて

過去に同じような質問もありましたが、いろいろ検索してこちらの過去ログを拝見しても解決できなかったので質問させてください。 掲示板のページを戻る(やり直しが出来る)ボタンをつくりたいのですが、戻るとページの内容が既に書き込まれてしまい、戻りボタンが機能しません。機能させるにはどうしたらよいでしょうか? ソースは以下です。 <?php $title = $_REQUEST["title"]; $title = str_replace("\t", " ", $title); $namae = $_REQUEST["namae"]; $namae = str_replace("\t", " ", $namae); $body = $_REQUEST["body"]; $body = str_replace("\t", " ", $body); ?><html> <head> <title>Sample01</title> </head> <body> <?php $log = $title . "\t" . $namae . "\t" . $body . "\n"; $fp = fopen("../php/test1.txt","a"); fwrite($fp,$log); fclose($fp); echo "書込み確認画面", "<a href=\"./form.php\"></a>"; ?> <br><br> タイトル <table border="1" width="200" ><tr><td> <?= $title; ?> </td></tr></table> </font><br><br> 名前 <table border="1" width="200" ><tr><td> <?= $namae ?> </td></tr></table> </font><br><br> メッセージ <table border="1" width="350" ><tr><td> <?= $body; ?> </td></tr></table><br><br> <form name="form" action="./form.php" method="POST"> <input name="write" type="submit" value="書込"> </form> <form> <input type=button value="戻る" onClick='history.back();'> </form> <hr color="black" width="44%" align="left"> </form> <a href="form.php">掲示板へ</a> </body> </html> わかる方おりましたらご教授お願いします。

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

  • ベストアンサー
  • wish46
  • ベストアンサー率78% (29/37)
回答No.2

><input type="hidden" VALUE="$title,$namae,$body" > name属性がないですね。 確認画面で <input type="hidden" name="title" value="<?=$title?>"> <input type="hidden" name="namae" value="<?=$namae?>"> <input type="hidden" name="body" value="<?=$body?>"> とし 書込みで $log = $_POST["title"] . "\t" . $_POST["namae"] . "\t" . $_POST["body"] . "\n"; としてはどうですか

suzuka7904
質問者

お礼

ありがとうございました。 無事に解決しました。 はじめてhiddenを使ってみたのですが、なかなか便利ですね。

その他の回答 (1)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

これは例えば「入力」→「確認」→「書き込み」と処理を行う場合の確認画面にあたるのでしょうか。 それならここでファイルに書き込むことは普通しません。 <form name="form" action="./form.php" method="POST"> <input name="write" type="submit" value="書込"> </form> この部分のフォームにhiddenで$title,$namae,$bodyを埋め込んで次の書き込み画面に渡すようにしたらよいでしょう。 そして書き込み部分を次のようにifで囲みます。 if ($_POST["write"] == "書込") { $log = $title . "\t" . $namae . "\t" . $body . "\n"; $fp = fopen("../php/test1.txt","a"); fwrite($fp,$log); fclose($fp); }

suzuka7904
質問者

補足

こんな感じになりましたが、うまく動きません。どこがわるいんでしょうか? 「掲示板のページ」 <?php if ($_POST["write"] == "書込") { $log = $title . "\t" . $namae . "\t" . $body . "\n"; $fp = fopen("../php/test1.txt","a"); fwrite($fp,$log); fclose($fp); } $data = file("../php/test1.txt"); for($i=sizeof($data)-1;$i>=0;$i--){ list($title, $namae, $body) = explode("\t", $data[$i]); print <<<eof タイトル:{$title}<br><br> 名前:{$namae}<br><br> 記事NO.${i}:{$body}<br> <hr> eof; } ?> 「確認のページ」 <form name="form" action="./form.php" method="POST"> <input type="hidden" VALUE="$title,$namae,$body" > <input name="write" type="submit" value="書込"> </form>

関連するQ&A