2013-05-28 45 views
2

在HTML表单上,用户填写注册数据,然后将其提交到PHP页面以处理POST数据。大约20%的时间,当用户点击“提交”时,POST数据是空的。使用招一些调查表明了这一点:正常工作:表单提交导致多个请求加载相同页面

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数组为空,并且用户被重定向到annuciating该错误的页面。这是page_id=445系列。

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

+1

是否有可能多次按下提交按钮? – 3dgoo

+0

你可以自己重现问题吗?术语'事件冒泡'表明ajax/javascript提交,你有客户端和服务器端验证? – jeroen

+0

也许你正在做这样的事情: '' –

回答

0

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

希望它有帮助!

相关问题