提交到当前页面,如何解决刷新重复提交表单的问题?_html/css_WEB-ITnose
完全新手,请教大家!
要求是:
1. 页面中有一个form,两个按钮,一个是save,一个是cancel;form中的数据是从文件a中读取的;
2. form中的内容修改后,点save后保存数据到文件a中,仍然显示当前的页面;点cancel就取消更改;
3. 问题是当点刷新会重复提交表单,我是用cgi实现的,写了简单的代码如下:
show.html:
#include
#include "cgic.h"
#include
#include
char text_value[]={"AAAAAAAA"}; // text_value is from a file
void htmlPage()
{
fprintf(cgiOut, "\n");
fprintf(cgiOut, "
fprintf(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)
{
// save data to a file;
// ...
// reload page;
cgiHeaderContentType("text/html");
htmlPage();
return 0;
}
//read data from a file
// ...
cgiHeaderContentType("text/html");
htmlPage();
return 0;
}
4. 我实验了网上的几种方法:javascript中使用全局变量和使用一个隐藏的控件都不行,因为我的页面重新load后这个值总是初始值;使用隐藏的iframe,然后form的target指向这个frame,也不行,这样点了save后仍然可以执行cancel;不能在提交后将save控件disable,因为我在cgiMain中还要做一些保存数据等处理,disable后都没有执行这一块了。。。
我不明白其它的session,ajax等方法是怎么用的,能不能达到目的? 能否指点一下 该怎么做阿?没有头绪。。。
多谢拉!
回复讨论(解决方案)
页面后面生成一个随机的时间戳
后台提取前 session比对一下
如:
http://www.baidu.com?p=12345678912
服务器端 取
if( isset( $_GET["p"] ) && $_GET["p"] != session["submit"] ){ // do sth. // session["submit"] = $_GET["p"];};
页面后面生成一个随机的时间戳
后台提取前 session比对一下
如:
http://www.baidu.com?p=12345678912
服务器端 取
if( isset( $_GET["p"] ) && $_GET["p"] != session["submit"] ){ // do sth. // session["submit"] = $_GET["p"];};
谢谢回复!页面后面 是指什么时候? 我应该在这个代码的什么部分去做? 还有这个Php代码我可以直接应用到我的代码中吗?

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

L'article traite du HTML & lt; Progress & GT; élément, son but, son style et ses différences par rapport au & lt; mètre & gt; élément. L'objectif principal est de l'utiliser & lt; Progress & gt; pour l'achèvement des tâches et & lt; mètre & gt; pour stati

HTML convient aux débutants car il est simple et facile à apprendre et peut rapidement voir les résultats. 1) La courbe d'apprentissage de HTML est fluide et facile à démarrer. 2) Il suffit de maîtriser les balises de base pour commencer à créer des pages Web. 3) Flexibilité élevée et peut être utilisée en combinaison avec CSS et JavaScript. 4) Les ressources d'apprentissage riches et les outils modernes soutiennent le processus d'apprentissage.

L'article traite du HTML & lt; Datalist & GT; élément, qui améliore les formulaires en fournissant des suggestions de saisie semi-automatique, en améliorant l'expérience utilisateur et en réduisant les erreurs. COMMANDE COMPRES: 159

L'article traite du HTML & lt; mètre & gt; élément, utilisé pour afficher des valeurs scalaires ou fractionnaires dans une plage, et ses applications courantes dans le développement Web. Il différencie & lt; mètre & gt; De & lt; Progress & gt; et ex

L'article traite de la balise Meta de la fenêtre, essentielle pour la conception Web réactive sur les appareils mobiles. Il explique comment une utilisation appropriée garantit une mise à l'échelle optimale du contenu et une interaction utilisateur, tandis que la mauvaise utilisation peut entraîner des problèmes de conception et d'accessibilité.

L'article traite du & lt; iframe & gt; L'objectif de Tag dans l'intégration du contenu externe dans les pages Web, ses utilisations courantes, ses risques de sécurité et ses alternatives telles que les balises d'objet et les API.

HTML définit la structure Web, CSS est responsable du style et de la mise en page, et JavaScript donne une interaction dynamique. Les trois exercent leurs fonctions dans le développement Web et construisent conjointement un site Web coloré.

Anexampleofastartingtaginhtmlis, qui abinginsaparagraph.startingtagsaressentialtinhtmlastheyinitiateelements, définit les éventualités, et la faculté de réduction des pages et de la construction de la création.
