首页 > 解决方案 > 无法在 JavaScript 文件中获取用 PHP 制作的 cookie

问题描述

我试图获取用户在 php 文件的输入框中输入的用户名作为 cookie,然后在 JS 文件中读取该 cookie 并获取用户名。

PHP

<?php
...
   print('<form method="POST" name="loginForm" action="myDomain.com">' . "\n");
   print('              <div class="loginContainer">' . "\n");
   print('                              <label for="userNameBox"><b>Account Login: </b></label>'. "\n");
   print('          <input type="text" class="userName"id="userNameBox" placeholder="Enter Username" required="required">'. "\n");
   print('          <input type="button" class="loginButton" id="loginButton" value="Login"/>' . "\n");
   print('        </div>'. "\n");
   print('</form>' . "\n")
   print('     <div id="toolbar">' . "\n");

...
setcookie ( "LOGIN_USERNAME_COOKIE", 
            $_POST['userNameBox'] , 
            $expires = 0, 
            $path = "/" , 
            $domain = 'myDomain.com' ,
            $secure = false,
            $httponly = false 
          );
...
?>

JavaScript(只是试图打印出 cookie)

confirm("Username entered: "+document.cookie.split('LOGIN_USERNAME_COOKIE=')[1]);

在确认 Java 警报中,我得到了这个:

Username entered: __utma=261946002.205893547.1618416838.1618416838.1618416838.1; __utmc=261946002; __utmz=261946002.1618416838.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmt=1; __utmb=261946002.1.10.1618416838; _fbp=fb.1.1618416838418.1117675244

如何解决此问题以使 cookie 包含用户输入的文本并显示它?

标签: javascriptphpauthenticationcookies

解决方案


尝试这个:

let username = document.cookie
  .split('; ')
  .find(row => row.startsWith('LOGIN_USERNAME_COOKIE='))
  .split('=')[1];

confirm("Username entered: "+username);

来源:MDN


推荐阅读