JS Cook ie Показать / скрыть форму в зависимости от пользователя - PullRequest
3 голосов
/ 03 августа 2020

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

Данные из формы пока не нужно сохранять, это будет реализовано позже.

Желаемая функциональность : Пользователь открывает веб-сайт, если он уже отправил форму раньше, он просто go прямо на индексную страницу, если это новый пользователь, который не отправил форму, они заполняют ее , отправить и перенаправляются на страницу индекса. Срок действия Cook ie истекает через 6 месяцев.

Мой код, похоже, не работает:

<!DOCTYPE html>
<html>
<head>
  <script>
    function setCookie(cname,cvalue,exdays) {
      var d = new Date();
      d.setTime(d.getTime() + (exdays*30*60*60*1000));
      var expires = "expires=" + d.toGMTString();
      document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
    }

    function getCookie(cname) {
      var name = cname + "=";
      var decodedCookie = decodeURIComponent(document.cookie);
      var ca = decodedCookie.split(';');
      for(var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
          c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
          return c.substring(name.length, c.length);
        }
      }
      return "";
    }

    function checkCookie() {
      var user=getCookie("username");
      if (user != "") {
        window.location.replace("https://google.com/");
      } 
    }
  </script>
</head>

<body onload="checkCookie()">
  <form>
    <label for="fname">First name:</label><br>
    <input type="text" id="fname" name="fname" value=""><br>
    <label for="lname">Last name:</label><br>
    <input type="text" id="lname" name="lname" value=""><br><br>
    <input type="submit" value="Submit">
  </form> 
</body>

</html>

1 Ответ

3 голосов
/ 03 августа 2020

Используйте document.cookie.

Чтобы установить:

document.cookie = "filledForm=true; expires=<WHEN_YOU_WANT_THE_COOKIE_TO_EXPIRE>";

Чтобы получить его:

let cookies = document.cookie;

ПРИМЕЧАНИЕ: document.cookie вернет все файлы cookie в одна строка похожа на: cookie1=value; cookie2=value; cookie3=value;. Так что вы должны разделить его или что-то в этом роде.

Чтобы изменить его, вы должны просто сбросить его:

document.cookie = "filledForm=false; expires=<WHEN_YOU_WANT_THE_COOKIE_TO_EXPIRE>";

Проверьте документы здесь . Для примера проверьте этот сайт

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