2

用户在 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    

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

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

针对评论进行编辑:首先感谢 FDinoff 进行格式化......我正在学习,希望这能奏效。8^)

为了:

@3dgoo:我小心翼翼地只点击了一次提交,所以我认为这不是问题所在。希望是!

@jereon:这是断断续续的,多好的 PITA,但我可以通过提交页面四五次来实现它......它会发生。

@Eduardo:是的,这就是我正在做的事情,正如您在我对@meewoK 的回复中所看到的那样。

@meewoK:先生,您的愿望就是我的命令!这是我的 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

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

4

1 回答 1

0

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

希望能帮助到你 !

于 2013-05-28T11:43:34.250 回答