Php 在加载文件之前初始化会话变量
这是我的login.php文件中存在的代码的一小部分,该文件是登录到我的系统的表单(用户名密码):Php 在加载文件之前初始化会话变量,php,ajax,session,Php,Ajax,Session,这是我的login.php文件中存在的代码的一小部分,该文件是登录到我的系统的表单(用户名密码): <script type="text/javascript"> $.ajax({ method:"POST", url:"check_read_status.php" }); </script> <?php include "index.php"; exit; ?> $.ajax({
<script type="text/javascript">
$.ajax({
method:"POST",
url:"check_read_status.php"
});
</script>
<?php
include "index.php";
exit;
?>
$.ajax({
方法:“张贴”,
url:“check_read_status.php”
});
鉴于check_read_status.php的代码如下:
<?php
session_start();
if (isset($_SESSION['valid_user']))
{
$db=new mysqli('localhost', 'root','','apeirosto');
if (!($db->connect_errno))
{
$usermail=$_SESSION['valid_user'];
$query="SELECT * FROM INBOX WHERE receiver='$usermail' AND status_read=0";
$result=$db->query($query);
if ($result->num_rows>=1)
$_SESSION['unread_messages']=1;
else
$_SESSION['unread_messages']=0;
}
}
?>
我的问题是我想将会话变量$\u session['unread\u messages']传递给index.php,index.php将创建新的DOM,因为login.php文件的HTML部分不会执行(因为exit命令)。但是,由于AJAX的异步特性,index.php不会立即获知上述会话变量的值。我已经尝试了很多,但是我没有找到一种推迟执行include“index.php”的方法。你有什么好主意吗
谢谢问题是PHP代码在Javascript代码开始执行之前就完成了执行。解决方案不是使用AJAX,而是在login.php中嵌入check_read_status.php代码。就这么简单 任何会话变量都可以立即访问index.php,因为它可以访问会话。关于延期,你查过JavaScript延期的吗?