私は AJAX を使用したプログラミングの初心者であり、PHP プログラミングの初心者です。理由はわかりませんが、ユーザーが矢印をクリックして投稿を繰り返し非常に高速に「賛成」すると、PHP login_check はユーザーがログインしていないと判断します。通常の速度で矢印をクリックすると、プログラムは動作します。 、しかし連射すると変になります。
PHP コード:
<?php
include "db_connect.php";
include "functions.php";
sec_session_start();
これが競合状態の明確なケースであり、それを防ぐために何ができるか疑問に思っていました--
AJAX コード:
$(document).ready(function() {
$("#upvotearrow").click(function() {
setTimeout(function() { }, 500);
$resdiv=$("#upvotedownvote_resultalert");
$content=$("#upvotedownvote_resultalert_content");
$.ajax({
type: "POST",
url: "../secure/process_upvotedownvote.php",
data: { vote: "upvote", poemid: $("#poemidfield").val() },
dataType:"HTML"
})
.done(function(param) {
if (param=="true_upvote") {
$content.html("Upvote registered!");
$resdiv.css("visibility", "visible");
}
else {
$content.html("Invalid request");
$resdiv.css("visibility", "visible");
}
});
});
$("#downvotearrow").click(function() {
setTimeout(function() { }, 500);
$resdiv=$("#upvotedownvote_resultalert");
$content=$("#upvotedownvote_resultalert_content");
$.ajax({
type: "POST", //POST data
url: "../secure/process_upvotedownvote.php", //Secure upvote/downvote PHP file
data: { vote: "downvote", poemid: $("#poemidfield").val() }, //Get type of vote and poem_id in URL
dataType:"HTML" //Set datatype as HTML to send back params to AJAX function
})
.done(function(param) { //Param- variable returned by PHP file
if (param=="true_downvote") {
$content.html("Downvote registered!");
$resdiv.css("visibility", "visible");
}
else {
$content.html("Invalid request");
$resdiv.css("visibility", "visible");
}
});
});
});
ライブデモのあるウェブサイトはこちらからご覧いただけます。
ログインするには、このメールアドレス: asdf@gmail.com とパスワード: asdf123 を使用してください
アドバイスをよろしくお願いします!