Dynami c содержимое кэшируется - PullRequest
1 голос
/ 01 мая 2020

На нескольких страницах моего сайта я обнаружил, что содержимое, извлеченное из базы данных, похоже, кэшируется.

Пример: у меня есть страница, которая использует следующий запрос

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

На веб-сайте это также правильно.

enter image description here

Затем я заполняю форму на той же странице, выбираю что-нибудь в выпадающем меню и отправляю. Вы попадете на экран подтверждения со ссылкой на исходный экран.

PhpMyAdmin показывает ожидаемые результаты.

enter image description here

Но на веб-сайте все еще отображаются оба варианта, пока я не перефразирую sh

enter image description here - до рефрера sh

enter image description here

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

Также можно увидеть проблему на следующей странице - ссылка здесь - Если вы перейдете на эту страницу, выберите ссылку рандомизатора в заголовке, выберите другую ссылку, затем go назад к рандомизатору, те же изображения показывают

Об ошибках не сообщается на сайте. Может ли кто-нибудь указать мне на то, на что еще посмотреть

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...