在JavaScript中获取第二个会话变量时出现问题


Having Issue on Getting Second Session Variable in JavaScript

我有一个从SQL数据库获取数据的PHP文件,我正试图通过$theFName$theId设置和获取两个会话变量,如$_SESSION['fname']$_SESSION['userID']

       $email = $_POST['email'];
       $pass  = $_POST['pass'];
       $conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_DATABASE);                
       $sql = "SELECT id, email, fname, lname, type FROM users WHERE `email`=? AND `pass`=?";              
       $stmt = $conn->prepare($sql);
       $stmt->bind_param('ss', $email,$pass);
       $stmt->execute();
       $stmt->bind_result($theId,$theEmail,$theFName,$theLname,$theType);
       if ($stmt->fetch()) {
            echo 'true';
            $_SESSION['LOGIN_STATUS'] = true;
            $_SESSION['fname'] = $theFName;
            $_SESSION['userID'] = $theId;
       } else {
            echo 'false';
        }

在JavaScript文件中,我有

 <script>  
  var tok = "var UID = "<?php echo $_SESSION['userID']; ?>"; 
  console.log("The Id is " + UID)
</script>  

但我得到了空字符串!

你能告诉我我做错了什么吗?

我不太确定我是否理解你试图在JS文件中做什么,但它在任何情况下都不是有效的JS-引号不匹配,看起来你试图在字符串中进行赋值。

我认为你正在寻找的是更像这样的东西:

<script>  
  var UID = "<?php echo $_SESSION['userID']; ?>"; 
  console.log("The Id is " + UID)
</script> 

但是,请注意,使用PHP动态生成JS文件可能不是最好的方法。看看这个SO关于可以用来将变量从PHP传递到JS的各种方法的答案,以及它们的各种优点和缺点。