В форме 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
Это как представить в представлении страницы три раза. BTW, 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()
возвращает истину, данные POST отправляются на страницу WordPress, который построен с использованием PHP. Это 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
.
Спасибо всем, ваши идеи и предложения помогут мне подумать по правильной линии.
Возможно ли нажатие кнопки отправки несколько раз? – 3dgoo
У вас есть проблемы с воспроизведением? Термин «event bubbling» предполагает представление ajax/javascript, есть ли у вас проверка как на стороне клиента, так и на стороне сервера? – jeroen
Возможно, вы делаете что-то вроде этого: '' –