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

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

WBOY
WBOYオリジナル
2016-06-24 12:25:401779ブラウズ

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

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

char text_value []={"AAAAAAAAA"} // text_value はファイルからのものです
void htmlPage()
{
fprintf(cgiOut, "100db36a723c770d327fc0aef2ce13b193f0f5c25f18dab9d176bd4f6de5d30en");
fprintf(cgiOut, "eb3c3c5ebbbe9297ee8be7a32a9126ec7cdffbc981ce578dc6212f54b5f55c8en");

fprintf(cgiOut, "6c04bd5ca3fcae76e30b72ad730ca86d n");

fprintf(cgiOut, "32f13c208360354c7c73dd4e22ea1dc6n");

fprintf(cgiOut, "6002e4b14867514a50c76f53885140a0n");
fprintf(cgiOut, "8f5c5fecca4eaa15d6c738be17014c84n");
fprintf(cgiOut, "f5a47148e367a6035fd7a2faa965022en");
fprintf(cgiOut, "73a6ac4ed44ffec12cee46588e518a5e n");
}

show_data .c:
#include ade979de5fc0e1ca0540f360a64c230b
#include "cgic.h"
#include bbed3fed50f96ac7490cfc6a498c4bc5
#include 8e359799bdf1a571032ba13cc96acda9
#include f55648144b4a1c5cce7ad2f6519be0f3
#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 コードはありますか?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。