アプリ版:「スタンプのみでお礼する」機能のリリースについて

掲示板で、投稿後にリロードすると
さっき投稿した内容が再び書き込まれてしまいます。
これを防ぐには、open OUT で書き込みをして
close OUT をした後に、SOPTデータを消す記述を
書けばいいんだと思います。
その記述を教えて下さい。

A 回答 (2件)

SOPTデータの意味が分かりませんが。



> open OUT
> close OUT
一瞬何かと思いました。ファイルハンドルだったんですね。
普通にファイルを開いて、閉じてとか書いた方がいいですよ。

> 掲示板で、投稿後にリロードすると
> さっき投稿した内容が再び書き込まれてしまいます。
良くありますね。

書き込み処理が終わったら、
print "Location: 掲示板のURL\n\n";
とするのを自分では良く使います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
Location: で別ページ飛ばす方法もありますよね。
でも、それをせずに、bbs.cgi で送信して
bbs.cgi に飛ばす方法で、さっきの送信した
POST の情報を消すことはできませんか?
$|=1; とか close; とか書いてみたけど、
それをすると bbs.cgi でHTMLが表示されなくなって
うまくいきませんでした。

お礼日時:2001/11/04 20:07

全然参考にならないかも知れませんが一応書き込みます。


まず、何故リロードすると二重書き込みになるかって事ですがリロード事態が
ブラウザが前回行ったことを再度実行すると言う事ですので書き込みの内容を
覚えているブラウザが再び同じ処理を行い書き込みをしてしまいます。

防ぐ方法としてはCGIでは無くMETAタグで勝手にブラウザに書き込み以外の処理を
させれば良い訳です.....
書き込み完了画面を作成しヘッド内に下記の記述をすればOK!?
<head>
<base target="_self">
<title>JUMP</title>
<meta HTTP-EQUIV="Refresh" CONTENT="0;URL=http://********">
</head>

こうすればブラウザが勝手に次の処理を行いリロードしても二重書き込みが防げるはずです。
    • good
    • 0
この回答へのお礼

ありがとうございます。
METAタグの方法をやってみたけど、できませんでした。
リロードで再び書き込まれました。

お礼日時:2002/01/18 23:30

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