Я не могу получить файл COOKIE для обновления его значения (которое является целым числом)

#php #cookies

#php #файлы cookie

Вопрос:

Я так долго работал над этим, я чувствую, что это мой последний вариант, у меня есть слайд-шоу на веб-странице html, и они могут по существу пролистывать весь путь до конца, прокручивая. По сути, я хочу, чтобы пользователи могли вернуться на свою панель мониторинга и, когда они нажимают, чтобы вернуться в слайд-шоу, повторно загрузить страницу, на которой они были…

В верхней части страницы у меня есть это:

     <?php
  if (!isset($_COOKIE['PageNo'])){
    setcookie("PageNo", 1, time()   (86400 * 30), "/"); // 86400 = 1 day, so set the cookie for a month long period
  }
?>
  

По сути, я говорю, что для начала установите файл cookie равным 1 (первая страница в слайд-шоу = 1, затем над следующим разделом у меня есть ниже:

 <?php

    if($_COOKIE['PageNo'] >= 2) 
  {
    ?>

    <script>
      window.location.replace("<?php echo "istudy_university.php#slide=".$_COOKIE['PageNo']; ?> ");
    </script>

<?php
  }
    else
  { 
?>
  <script>
      window.location.replace("istudy_university.php#slide=1");
  </script>
<?php
  }
?>
  

Над каждым слайдом у меня есть приведенное ниже и просто изменение slide = number:

 <?php $_COOKIE['PageNo'] = 3; ?>
  

Итак, я говорю, что если файл cookie больше или равен 2, то перейдите на страницу no’x, иначе перейдите на страницу 1. Однако все, что он продолжает делать, постоянно возвращает меня на страницу 1. Пожалуйста, помогите!! Я неправильно устанавливаю файл cookie?

ОБНОВЛЕНИЕ: после просмотра некоторых слайдов файл cookie должен был измениться на 5, однако он по-прежнему равен 1?

введите описание изображения здесь

ОБНОВЛЕННЫЙ код, показывающий HTML для страницы:

         <?php
      session_start();
      require "includes/dbh.inc.php";
    ?>

    <?php
    echo $_COOKIE['PageNo'];
      //$_COOKIE['PageNo'] = 5; //Commented out, for testing
      if (!isset($_COOKIE['PageNo'])){
        setcookie("PageNo", 1, time()   (86400 * 30), "/"); // 86400 = 1 day, so set the cookie for a month long period
      }
    ?>
    <!doctype html>
    <html lang="en" prefix="og: http://ogp.me/ns#">
      <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>iStudy University | Stress amp; Anxiety</title>
    <link rel="stylesheet" type='text/css' media='all' href="webslides.css" rel="stylesheet">
    <body>

        <script src="static/js/webslides.js"></script>

         <!-- BEGINNING OF SLIDES -->
         <?php

          if($_COOKIE['PageNo'] >= 2) 
          {
            ?>

            <script>
              window.location.replace("<?php echo "istudy_university.php#slide=".$_COOKIE['PageNo']; ?> ");
            </script>

        <?php
          }
            else
          { 
        ?>
          <script>
              window.location.replace("istudy_university.php#slide=1");
          </script>
        <?php
          }
        ?>
        <main role="main">
          <article id="webslides">
            <!-- SLIDE 1 -->

            <section class="bg-apple aligncenter">
             <span class="background dark" style="background-image: url('istudy_slides_images/abstract.jpg')"/></span>
              <div class="wrap" id="slide=1">
                <h1 class="text-landing">Stress amp; Anxiety</h1>
                <br>
                <br>
                <br>
                <hr id="hor-rule">
                <h1 class="slides-logo">iStudy University <i class="fas fa-graduation-cap"></i></h1>
                <h2 class="slogan">Designed by Students <br><span class="iv">IV</span> <br>Students</h2><br><br>
              </div>
            </section>

            <!-- SLIDE 2 -->
            <?php $_COOKIE['PageNo'] = 2; ?>
            <section class="aligncenter">
              <span class="background light" style="background-image: url('istudy_slides_images/mountain.jpg')"/></span>
              <div class="wrap" id="slide=2">
                <blockquote class="quote">
                  <p class>"No one can create negativity or stress within you. Only you can do that by virtue of how you process your world"</p>
                  <p><cite>Wayne Dyer</cite></p>
                </blockquote>
              </div>
            </section>

        <!-- SLIDE 3 -->
        <?php $_COOKIE['PageNo'] = 3; ?>
        <section class="bg-slide3">
          <div class="wrap size-80" id="slide=3">
            <h3 class="title stessAnx"><strong>amp;ensp;Stress amp; Anxiety</strong></h3><br>
              <p>Stress and anxiety are common experiences of students in higher education.<br>This module will introduce you to evidence based techniques for managing stress and anxiety based upon cognitive behavioural therapy (CBT).</p>
</section>
</div>
  

Комментарии:

1. Файл cookie был сохранен? Можете ли вы подтвердить его значение, проверив через браузер или сбросив $_COOKIE['PageNo'] .

2. Настройка файлов cookie в PHP может быть немного запутанной, взгляните на документацию и примеры здесь php.net/manual/en/function . setcookie. php они могут помочь

3. Привет @Script47 Номер файла cookie по какой-то причине не меняется, когда я просматриваю исходный код страницы, он ВСЕГДА равен 1. Чтобы проверить, что это сработало, я поместил <?php $_COOKIE['PageNo'] = 3; ?> в самый верх php-кода, и это привело меня прямо на страницу 5, однако, когда я устанавливаю файл cookie над каждым слайдом, он не хочет работать 🙁

4. @T.C Вы, кажется, не увеличиваете значение $ _COOKIE [‘PageNo’].

5. Привет @akshithdayan И я просто автоматически устанавливаю его для каждого слайда, т. Е. Над одним слайдом, который я разместил <?php $_COOKIE['PageNo'] = 3; ?> , затем на следующем слайде это вверху <?php $_COOKIE['PageNo'] = 4; ?> и так далее и тому подобное?

Ответ №1:

Включите библиотеку jQuery как на панель мониторинга, так и на страницу слайдов. Включите библиотеку Scrollify на странице слайдов

На странице панели мониторинга добавьте идентификатор к ссылке навигации на странице слайдов, например:

 <a  id="home" href="#">Slides</a>
  

Измените разделы на вашей странице слайдов следующим образом:

  • Добавьте уникальный идентификатор и общее имя класса для всех разделов.

Пример:

 <section class="slides aligncenter" id="b">
        <span class="background light" style="background-image: url('istudy_slides_images/mountain.jpg')" /></span>
        <div class="wrap" id="slide=2">
            <blockquote class="quote">
                <p class>"No one can create negativity or stress within you. Only you can do that by virtue of how you process your world"</p>
                <p><cite>Wayne Dyer</cite></p>
            </blockquote>
        </div>
    </section>
    <!-- SLIDE 3 -->
    <section class="slides bg-slide3" id="c">
        <div class="wrap size-80" id="slide=3">
            <h3 class="title stessAnx"><strong>amp;ensp;Stress amp; Anxiety</strong></h3><br>
            <p>Stress and anxiety are common experiences of students in higher education.<br>This module will introduce you to evidence based techniques for managing stress and anxiety based upon cognitive behavioural therapy (CBT).</p>
    </section>
  

** Идентификатор для каждого раздела задается как ‘b’, ‘c’ и т.д.

** оба раздела содержат общее имя класса — ‘slides’.

На странице слайдов добавьте следующий код JavaScript в нижний колонтитул.

 $.scrollify({
    section: ".slides", //Rename the class name with the common class name that you gave for the sections
    after: function() {

        localStorage.setItem('currentPage', $.scrollify.current()[0].id)

    }
});
  

На странице панели мониторинга добавьте приведенный ниже код JavaScript в нижний колонтитул в конце:

  <script>
      if(localStorage.getItem('currentPage') != ''){
          var newUrl = 'scroll.html#' localStorage.getItem('currentPage');
        $("#home").attr("href", newUrl);
      }
    </script>
  

Комментарии:

1. Каждый раз, когда я возвращаюсь на главную страницу, а затем обратно в слайд-шоу, он должен помнить, на каком слайде с номером я нахожусь (если cookie был сохранен нормально), однако он сразу возвращается к 1. Возможно, я неправильно выполнил конкатенацию? 🙁

2. @Т. ц даже после использования выше код вместо <?php $_COOKIE[‘PageNo’] = 3; ?> над каждым слайдом, чтобы обновить файл cookie , вы столкнулись с проблемой??

3. Итак, я поместил это в начало каждого раздела <?php setcookie("PageNo", 3, time() (86400 * 30), '/'); ?> , <?php setcookie("PageNo", 4, time() (86400 * 30), '/'); ?> и это все еще возвращает меня к 1

4. @T.C вы устанавливаете какое-либо значение файла cookie на домашней странице? Покажите код домашней страницы, если вы могли

5. @T.C хаха .. Я постараюсь обновить свой код, чтобы вы начали