Сохранить отправленные значения формы как cookie - PullRequest
0 голосов
/ 23 апреля 2019

Сейчас я храню переменные сеанса с jQuery, например:

$("form#sessie_datum").change(function() {
 var str = $("form#sessie_datum").serialize();
 $.ajax({
           type: 'POST',
           url: 'http://URL.com/datum.php',
           data: $("form#sessie_datum").serialize(),
           dataType: 'text',
           success: function() {
           alert('Variables has been stored in the session');
           },
 });
 return false;
});

В моем datum.php файле я получаю отправленные значения по имени, это мой form:

<form id="sessie_datum">
<input type="text" class="aantal_alpincenter" name="personen_aantal" value="">
<input type="text" id="datepicker2" placeholder="Click to choose a date" name="wapbk_hidden_date" value="">
<div id="datepicker"></div>
</form>

datum.php ниже здесь

<?php

session_start();
$_SESSION["chosen_date"] = $_POST['wapbk_hidden_date'];
$_SESSION["personen"] = $_POST['personen_aantal'];

?>

В каждом php файле я могу получить переменные сеанса, такие как:

session_start();
$date = htmlentities($_SESSION["chosen_date"]);

Вместо использования session_start(); я хочу использовать cookies, чтобы я мог предотвратить конфликт с моим плагином caching и позволить переменным сохраняться на компьютере пользователя в течение 1 дня, например. Кто-нибудь знает, как это сделать с cookies?

1 Ответ

0 голосов
/ 23 апреля 2019

Вы можете сохранять куки с помощью функции setcookie () .

Простое сохранение всех данных POST в куки с PHP будет выглядеть примерно так:

<?php 
// Check if request method is post
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  foreach ($_POST as $key => $value) {
    // If you wanna modify key text, you may do so like this:
    switch ($key) {
      case 'wapbk_hidden_date':
        $cookie_key = 'chosen_date';
        break;

      case 'personen_aantal':
        $cookie_key = 'personen';
        break;

      default:
        $cookie_key = $key;
        break;
    }

    // Saves cookie for 1 day on this domain
    setcookie($cookie_key, $value, time()+3600*24, "/");
  }
}

Изатем, когда вы захотите использовать ваш файл cookie, получите его с глобальной переменной $ _ COOKIE :

$date = htmlentities($_COOKIE['chosen_date']);
...