gpt4 book ai didi

php - 表单提交导致多个请求加载同一页面

转载 作者:行者123 更新时间:2023-11-28 03:32:31 25 4
gpt4 key购买 nike

在 HTML 表单上,用户填写注册数据,然后将其提交到 PHP 页面以处理 POST 数据。大约 20% 的时间,当用户单击“提交”时,POST 数据为空。一些使用 Fiddler 的调查在它正常工作时显示了这一点:

58  200 HTTP    www.awebsite.com    /?page_id=337   22,433  no-cache, must-revalidate, max-age=0; Expires: Wed, 11 Jan 1984 05:00:00 GMT    text/html; charset=UTF-8    firefox:9116                    

当它坏了的时候,我看到了这个:

56  200 HTTP    www.awebsite.com    /?page_id=337   144 no-store, no-cache, must-revalidate, post-check=0, pre-check=0; Expires: Sat, 6 May 1995 12:00:00 GMT       firefox:9116            
57 200 HTTP www.awebsite.com /?page_id=337 144 no-store, no-cache, must-revalidate, post-check=0, pre-check=0; Expires: Sat, 6 May 1995 12:00:00 GMT firefox:9116
58 302 HTTP www.awebsite.com /?page_id=337 16,561 no-cache, must-revalidate, max-age=0; Expires: Wed, 11 Jan 1984 05:00:00 GMT text/html; charset=UTF-8 firefox:9116
59 200 HTTP www.awebsite.com /?page_id=445 19,989 no-cache, must-revalidate, max-age=0; Expires: Wed, 11 Jan 1984 05:00:00 GMT text/html; charset=UTF-8 firefox:9116

submit好像是提交了3次页面。顺便说一句,HTML 和 PHP 页面是 WordPress 网站的一部分……不确定这是否密切相关,但希望包含尽可能多的信息。

对正在发生的事情有什么想法吗?我对事件冒泡感到内疚吗?如果有帮助,我会很乐意展示代码,如果没有必要,我不想把这个地方弄得乱七八糟。

编辑回应评论:首先感谢 FDinoff 进行格式化...我边学边学,希望这能奏效。 8^)

按顺序:

@3dgoo: I was careful to click submit once only, so I don't think that's the issue. Wish it was!

@jereon: It's intermittent, what a PITA, but I can get it to happen by submitting the page four or five times...it'll happen.

@Eduardo: yup, that's pretty much what I'm doing as you'll see in my reply to @meewoK.

@meewoK: Your wish is my command sir! Here's the form tag in my HTML:

<form  class="contact_form" action="/?page_id=337" method="post" name="contact_form" onsubmit="return validateForm();">

并假定 validateForm() 返回 true,POST 数据将发送到使用 PHP 构建的 WordPress 页面。那是 page_id=337。这是该文件的前 20 行左右:

<?php
/*
Template Name: DisplaySummaryToApplicant.php
*/
?>

<?php
$ipaddress = $_SERVER["REMOTE_ADDR"];
if (count($_POST) == 0 ) {
header("location: http://www.awebsite.com/?page_id=445");
}
require('wp-load.php');
get_header("header_reg");
//echo '<meta http-equiv="expires" content="0">';
require_once (dirname(__FILE__)."/dbLog.php");

global $current_user;
get_currentuserinfo();

当代码失败时,$_POST 数组为空,用户将被重定向到一个显示错误的页面。那是 page_id=445 行。

谢谢大家,您的想法和建议会让我沿着正确的路线思考。

最佳答案

您可以为每个帖子添加验证验证码。因此,当它多次点击时,它将生成一个新的验证码并返回 false。

希望对您有所帮助!

关于php - 表单提交导致多个请求加载同一页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16782335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com