在JavaScript中获取第二个会话变量的问题

时间:2015-11-21 18:38:29

标签: javascript php session

我有一个PHP文件从我的SQL数据库中获取数据,我试图设置并获得$_SESSION['fname']$_SESSION['userID']之类的$theFName$theId两个会话变量。

       $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>  

但我得到空字符串!

你可以告诉我我做错了吗?

1 个答案:

答案 0 :(得分:0)

我不太确定我理解你在JS文件中想要做什么,但在任何情况下它都不是有效的JS - 引号不匹配,看起来你正试图在里面做一个任务一个字符串。

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

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

但请注意,使用PHP动态生成JS文件可能不是解决此问题的最佳方法。查看this关于可以用来将变量从PHP传递给JS的各种方法的答案,以及它们的各种优缺点。