Как создать файл cookie для хранения временной метки первой загрузки страницы с помощью php

Буду очень признателен за любую помощь, если это возможно!

Это вопрос: Используйте файл cookie (НЕ PHP SESSION), срок действия которого истекает через год, чтобы сделать следующее: Запишите отметку времени ПЕРВОЙ загрузки этой страницы (но НЕ любой последующей загрузки этой страницы).

Код:

<!DOCTYPE html>
<html>
  <head>
    <title>User Profile</title>
  </head>
  <body>
     <h3><?=$message?></h3>

     User Profile:
     <br><br>
     <form action = "" method = "POST" name = "form1" onsubmit = "return validate_form()">
      <input type = "hidden" name = "task" value = "process_profile">

       <input type = "checkbox" name = "is_cool" value = "yes">
       Are you cool?
       <br><br>
       What Bands do you like?
       <br>
       <select name = "like_bands[]" multiple>  <small>* Required Field</small>
          <option value = "Sabbath">Black Sabbath</option>
          <option value = "Mastodon">Mastodon</option>
          <option value = "Metallica">Metallica</option>
         <option value = "Swift">Taylor Swift</option>
       </select>
       <br><br>
       Favorite band not in the above list.
       <br>
       <input type = "text" name = "other_band" value = "">
       <br><br>
       <button type = "submit"> Continue/Confirm </button>
     </form>

     <script>
      //////////////////////////////////////////////////////////////////////////////////////////////////////////
      // Client-side form validation
      // Don't change the names of stuff in the form, and you won't have to change anything below
      // Used built-in JS instead of JQuery or other validation tool
      //////////////////////////////////////////////////////////////////////////////////////////////////////////
      function validate_form() {

        var form_obj = document.form1;

        var count_liked = 0;
        for (var i=0 ; i < form_obj['like_bands[]'].options.length ; i++ ) {
          if (form_obj['like_bands[]'].options[i].selected) {
            count_liked++;
          }
        }

        if (count_liked == 0) {
          alert("You must choose a band from the menu.");
          return false; // cancel form submission
        }

        return true;  // trigger form submission
      }
    </script>

  </body>
</html>

Ни один из размещенных вами кодов не имеет ничего общего с файлами cookie. Какая часть этого сбивает с толку? Проверьте, содержит ли $_COOKIE имя, которое вы хотите. Если нет, используйте setcookie(), чтобы создать его.

Barmar 13.05.2022 03:05

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

momeezus 13.05.2022 03:10

Это то, что я пробовал до сих пор, я не уверен, что это работает. function load_dateCookie() { $date = date("l jS \of F Y h:i:s A"); $name = "load_date"; echo $date; $load_date = setcookie($name, $date, time() + (86400 * 365)); return $load_date; }

momeezus 13.05.2022 03:12

Поместите код в вопрос, а не в комментарий.

Barmar 13.05.2022 03:12

Вы не проверяете, что файл cookie уже существует, поэтому каждый раз заменяете его. if (isset($_COOKIE[$name])) { return; }

Barmar 13.05.2022 03:13

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

momeezus 13.05.2022 03:16
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
6
24
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проверьте, не установлен ли файл cookie. Если нет, установите для файла cookie текущую отметку времени.

if (!isset($_COOKIE['load_date'])) {
    setcookie('load_date', time(), time() + 86400*365);
}

Дата файла cookie не должна обновляться. Он хранит метку времени, когда страница была впервые открыта.

momeezus 13.05.2022 03:22

И это то, что это должно делать. Он не обновляет файл cookie, если он уже установлен.

Barmar 13.05.2022 03:22

О, хорошо, теперь я понял, большое спасибо, Бармар!!

momeezus 13.05.2022 03:26

Другие вопросы по теме