На нескольких страницах моего сайта я обнаружил, что содержимое, извлеченное из базы данных, похоже, кэшируется.
Пример: у меня есть страница, которая использует следующий запрос
SELECT c.ID, c.name FROM member_coupons AS m LEFT JOIN coupons as c on c.ID = m.couponID WHERE m.userID = 'ANONYMOUS' ORDER BY c.ID
Если я запускаю запрос в phpMyAdmin, я получаю ожидаемые результаты
![enter image description here](https://i.stack.imgur.com/i5AMo.png)
На веб-сайте это также правильно.
![enter image description here](https://i.stack.imgur.com/i0EY3.png)
Затем я заполняю форму на той же странице, выбираю что-нибудь в выпадающем меню и отправляю. Вы попадете на экран подтверждения со ссылкой на исходный экран.
PhpMyAdmin показывает ожидаемые результаты.
![enter image description here](https://i.stack.imgur.com/Wx69O.png)
Но на веб-сайте все еще отображаются оба варианта, пока я не перефразирую sh
- до рефрера sh
![enter image description here](https://i.stack.imgur.com/dr15Y.png)
javascript, который вызывается страницей отправки:
$("#submit").click(function() {
var text = "&coupon=" + $("#coupons").val();
var text = text + "&card1=" + $("#card1").val();
var text = text + "&card2=" + $("#card2").val();
var text = text + "&card3=" + $("#card3").val();
var text = text + "&card4=" + $("#card4").val();
$.get("ajax.php?action=couponSwap" + text, function(data, status) {
$('#content').html(data);
});
});
и связанной с ней функцией
function couponSwap($pdo, $get, $user) {
$coupon = $get['coupon'];
switch($coupon) {
case "1RNORMAL":
$cards[] = $user->addRandomCard(1, 'normal');
break;
case "2RNORMAL":
$cards[] = $user->addRandomCard(2, 'normal');
break;
case "1RSPECIAL":
$cards[] = $user->addRandomCard(1, 'special');
break;
case "2RSPECIAL":
$cards[] = $user->addRandomCard(2, 'special');
break;
case "1CNORMAL":
$cards[][] = $user->addCard($get['card1']);
break;
case "2CNORMAL":
$cards[][] = $user->addCard($get['card1']);
$cards[][] = $user->addCard($get['card2']);
break;
case "1CSPECIAL":
$cards[][] = $user->addCard($get['card3']);
break;
case "2CSPECIAL":
$cards[][] = $user->addCard($get['card3']);
$cards[][] = $user->addCard($get['card4']);
break;
}
if( count( $cards ) > 0 ){
foreach ($cards as $cardArray) {
foreach ($cardArray as $card) {
echo '<img src="'.$card["card"]->showImage().'" alt="'.$card["card"]->getName().'"/> ';
$names[] = $card["card"]->getName();
$insertIDs[] = $card['ID'];
}
}
$names = (isset($names)) ? implode(", " , $names) : 'ERROR';
$user->addLog(date("Y-m-d"), "Coupon Swap: " . $names, $insertIDs);
}
$sql = "DELETE FROM member_coupons WHERE couponID = :couponID AND userID = :userID LIMIT 1";
$q = $pdo->prepare($sql);
$q->bindValue(':couponID', $coupon);
$q->bindValue(':userID', $user->getID());
$q->execute();
echo '<p><a href="game-coupon.php">Swap more coupons</a></p>';
}
Также возникают проблемы, когда сайт думает, что пользователь вышел из системы, даже когда он вошел в систему.
Cookies устанавливаются с помощью
$expire = time() + (7 * 24 * 60 * 60);
setcookie("cardHoarder", $row['ID'], $expire, '/');
Проверка, вошел ли пользователь в систему, использует следующий код
$loggedIn = (isset($_COOKIE['cardHoarder'])) ? '1' : '0';
Это включено в файл конфигурации, который включен во все файлы php на сайте. Его обрабатывают так, как будто файлы cookie не установлены, хотя я их вижу.
![enter image description here](https://i.stack.imgur.com/E0B7c.png)
Также можно увидеть проблему на следующей странице - ссылка здесь - Если вы перейдете на эту страницу, выберите ссылку рандомизатора в заголовке, выберите другую ссылку, затем go назад к рандомизатору, те же изображения показывают
Об ошибках не сообщается на сайте. Может ли кто-нибудь указать мне на то, на что еще посмотреть