ホームページ > ウェブフロントエンド > htmlチュートリアル > 現在のページに送信します。送信フォームが繰り返し更新される問題を解決するにはどうすればよいですか? _html/css_WEB-ITnose

現在のページに送信します。送信フォームが繰り返し更新される問題を解決するにはどうすればよいですか? _html/css_WEB-ITnose

WBOY
リリース: 2016-06-24 12:25:40
オリジナル
1775 人が閲覧しました

この投稿は lljl2009 によって最終編集されました: 2013-12-09 19:59:49

私は全くの初心者です、アドバイスをお願いします!
要件は次のとおりです:
1. ページ上にフォームがあり、1 つは保存、もう 1 つはキャンセルです。
2. フォームのコンテンツが変更された後。 、 [保存] をクリックします データをファイル a に保存した後、[キャンセル] をクリックして変更をキャンセルします。 問題は、[更新] をクリックするとフォームが繰り返し送信されることです。次のような単純なコード:
#include
#include

char text_value []={"AAAAAAAAA"} // text_value はファイルからのものです
void htmlPage()
{
fprintf(cgiOut, "n");
fprintf(cgiOut, " ;テスト フォーム< /head>n");

fprintf(cgiOut, " n");

fprintf(cgiOut, "
n");

fprintf(cgiOut, "n",text_value); (cgiOut, "n");
fprintf(cgiOut, "n");
fprintf(cgiOut, "
n");
fprintf(cgiOut, " n");
}

show_data .c:
#include
#include "cgic.h"
#include
#include
#include
#include "mypage.h"


int cgiMain()
{
if (cgiFormSubmitClicked("save") == cgiFormSuccess)
{
// データをファイルに保存します。 ...
// ページをリロードします
cgiHeaderContentType("text/html");
return 0;
}
// ファイルからデータを読み取ります
// ...
cgiHeaderContentType("text/ html");
htmlPage();
return 0;
}


4. インターネット上でいくつかの方法を試しました: JavaScript でグローバル変数を使用したり、隠しコントロールを使用したりすることは、この値が常に初期値であるため、機能しませんでした。ページがリロードされた後、非表示の iframe を使用し、フォームのターゲットがこのフレームをポイントすると機能しません。そのため、送信後に保存コントロールを無効にすることはできません。 cgiMain でデータの保存やその他の処理を行う必要があり、これを無効にすると、この部分は実装されなくなります。 。 。

他のセッション、ajax、その他のメソッドがどのように使用されるのか理解できません。目的は達成できますか?どうすればよいかアドバイスをいただけますか?全く分からない。 。 。

ありがとうございます!


ディスカッションに返信 (解決策)

ページの最後にランダムなタイムスタンプを生成します
バックグラウンド抽出の前にセッションを比較します
例:
http://www.baidu.com?p=12345678912
サーバー-サイド抽出
if( isset( $_GET["p"] ) && $_GET["p"] != session["submit"] ){    // do sth.    // session["submit"] = $_GET["p"];};
ログイン後にコピー
ログイン後にコピー


ページの後ろでランダムなタイムスタンプを生成します

バックグラウンド抽出の前にセッションを比較します

例:

http://www.baidu.com?p=12345678912
サーバーサイドフェッチ

if( isset( $_GET["p"] ) && $_GET["p"] != session["submit"] ){    // do sth.    // session["submit"] = $_GET["p"];};
ログイン後にコピー
ログイン後にコピー


お返事ありがとうございます!ページの裏側とはどういう意味ですか?このコードのどこでこれを実行すればよいでしょうか?また、コードに直接適用できるこの Php コードはありますか?
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート