我有一个php网页,这会打印html命令并执行其他操作。我有一个div部分:
<div id="monitor" class="monitoring"><?php include "php/monitoring.php"?></div>
index.php脚本中的此脚本应每60秒调用一次。所以我发现AJAX和JavaScript对此很有用。因此我使用这个脚本:
<script type="text/javascript">
window.setInterval(function () {executemonitor()}, 60000);
function executemonitor() {
$("#monitor").load("php/monitoring.php");
}
脚本运行正常,但问题是,第二次运行的monitoring.php脚本失败了。该脚本无法使用$ _SESSION变量。我收到错误:注意:未定义的变量:第168行的C:\ xampp \ htdocs \ mi-hand \ php \ monitoring.php中的_SESSION。
如果我使用html refresh命令,它可以工作。
<meta http-equiv="refresh" content="n" />
然后整个页面都刷新了。我想避免这种情况。我想通过执行php脚本只刷新div部分。我怎样才能做到这一点? monitoring.php文件是一个单独的HTML页面。
答案 0 :(得分:1)
只有在调用session_start()之后,才能在php中使用_SESSION变量。
您的客户端调用2个不同的脚本:
你在index.php中有一个session_start()但在monitoring.php中没有,所以当客户端直接调用monitoring.php时,这不起作用。
您可以创建一个session.php文件,它执行会话初始化(如调用session_start()),然后在index.php和amp;中创建。 monitoring.php使用
include_once('session.php');
如果你有php&gt; 5.4您还可以在monitoring.php中添加以下代码
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
答案 1 :(得分:0)
如果您直接访问"php/monitoring.php"
,则需要在该脚本的开头使用session_start()
,而不仅仅是index.php
。