ユーザーは 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
提出がページを3回提出しているようなものです。ところで、HTML および PHP ページは WordPress ウェブサイトの一部です...それが密接な関係があるかどうかはわかりませんが、できるだけ多くの情報を含めたいと考えていました。
何が起こっているかについて何か考えはありますか?私はイベントバブリングの罪を犯していますか? それが必要でない場合は場所を散らかしたくありませんでした。
コメントに応じて編集: まず、フォーマットを作成してくれた FDinoff に感謝します。8^)
順番に:
@3dgoo: 送信を 1 回だけクリックするように注意したので、それは問題ではないと思います。だったらいいのに!
@jereon: 断続的です。PITA ですが、ページを 4 ~ 5 回送信することで実現できます。実現するでしょう。
@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
ラインです。
みなさん、ありがとうございます。あなたのアイデアや提案は、正しい方向に沿って考えさせてくれます。