如何从外部javascript中的php访问会话变量

时间:2019-08-11 10:52:57

标签: javascript php html json session-variables

我知道之前已经有人问过这个问题,但是从头到尾都没有任何解释。我有一个login.php想要从中获得$_SESSION['user_id']

来自

<?php
include "connect.php";

session_start();

$email=$_POST['email'];
$password=$_POST['password'];

$select_data=mysql_query("select * from user where email='$email' and password='$password'");

if(isset($_POST['email']))
{
if($row=mysql_fetch_array($select_data))
 {
  $_SESSION['user_id']=$row['id']; //The variable want to access from ext.js

  echo "success";
 }
 else
 {
  echo "fail";
 }
 exit();
}
?>

顺便说一句,此身份验证正常工作

我的Main.php


<!DOCTYPE html>
<?php include 'connect.php';
session_start();
echo $_SESSION['user_id']; //works fine
//;
?>
<body>
//contents
<script src="login.js"></script>
<script src="postad.js"></script> //the script from which I want to get $SESSION_['user_id']

</body>

我希望此变量稍后在数据库中插入。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您可以将会话ID值分配给JavaScript变量,以使其可用于JavaScript:

<!DOCTYPE html>
<?php include 'connect.php';
session_start();
echo $_SESSION['user_id']; //works fine
//;
?>
<body>
//contents
<script>
    var sessionId = "<?php echo $_SESSION['user_id'] ?>";
</script>
<script src="login.js"></script>
<script src="postad.js"></script> // "sessionId" variable should be available for the script
</body> 

答案 1 :(得分:0)

如果要在外部js文件中调用php变量,则必须在输入中存储值。

Main.php

<body>
<input type="hidden" value="$SESSION_['user_id']" class="user_id">
<script src="login.js"></script>
<script src="postad.js"></script> //the script from which I want to get $SESSION_['user_id']

</body>

postad.js

$(function(){
    var user_id = $('.user_id').val();
    alert(user_id);
});

如果要在同一文件中使用,则可以直接使用php echo。

Main.php

<body>
    //content..

<script>
    var user_id = "<?php echo $SESSION_['user_id'] ?>";
</script>
<script src="login.js"></script>
<script src="postad.js"></script> // console.log(user_id); that file you'll get that id.
</body>
相关问题