1 つのフォームを 2 つの異なる URL に投稿する必要があります。1 つは単なるログ スクリプトであるため、応答をユーザーに返す必要はありません。
残念ながら、この例では、単一の PHP スクリプトに投稿して、向きを変えて Curl を使用して再投稿することはできません。これは、ユーザーのブラウザで行う必要があります。
これは私が現在使用している Javascript の一部ですが、ほとんどすべての主要なブラウザーで一見ランダムな速度で失敗しています (ただし、95% 以上の確率で動作します)。フォームの残りの部分では Javascript が機能する必要があるため、問題は一部のユーザーが Javascript をオフにしているということだけではないことがわかっています。
function makePOSTRequest(url, parameters) {
http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Cannot create XMLHTTP instance');
return false;
}
http_request.open('POST', url, true);
http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http_request.setRequestHeader("Content-length", parameters.length);
http_request.setRequestHeader("Connection", "close");
http_request.send(parameters);
}
別の関数でリクエストを手動で作成した後、それを呼び出してから、フォームの submit() 関数を呼び出しています。
誰かがよりうまくいくかもしれない代替案を提案できますか? これは最大 95% の確率で機能しているようですが、その 5% の失敗率は致命的です... ありがとう!