【问题标题】:php page refresh only div section every 60 secondsphp页面每60秒刷新一次div部分
【发布时间】:2014-08-22 09:35:11
【问题描述】:

我有一个 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 变量。我收到错误:注意:未定义的变量:C:\xampp\htdocs\mi-hand\php\monitoring.php 中的 _SESSION 位于第 168 行。

如果我使用 html refresh 命令,它可以工作。

<meta http-equiv="refresh" content="n" />

但随后整个页面被刷新。我想避免这种情况。我只想通过执行 php 脚本来刷新 div 部分。我怎样才能做到这一点? monitoring.php 文件是一个单独的 HTML 页面。

【问题讨论】:

  • 你有没有在monitoring.php的顶部给session_start()
  • "脚本工作正常,但问题是,monitoring.php 脚本的第二次运行失败。脚本无法使用 $_SESSION 变量。我收到错误:注意:未定义变量:第 168 行 C:\xampp\htdocs\mi-hand\php\monitoring.php 中的 _SESSION。”您至少应该向我们展示 php 文件中的代码。
  • 在包含 div 部分之前,我在 index.php 中调用 session_start()。
  • session_start() 应该在每个使用 SESSION 的页面中使用
  • 你是不是单独放了session_start();在monitoring.php 中,因为如果您在index.php 中启动会话,则可以刷新整个页面并使用index.php 命令,但是当您单独调用页面monitoring.php 时,顶部的session_start() 必须可用monitoring.php 页面

标签: javascript php jquery html ajax


【解决方案1】:

_SESSION 变量只有在 session_start() 被调用后才能在 php 中使用。

您的客户调用 2 个不同的脚本:

  • index.php 呈现 div 并包含 monitoring.php
  • monitoring.php 呈现 div 的内容

您在 index.php 中有 session_start() 但在 monitoring.php 中没有,因此当客户端直接调用 monitoring.php 时,这不起作用。

您可以创建一个 session.php 文件来执行会话初始化(例如调用 session_start()),然后在 index.php 和 monitoring.php 中使用

include_once('session.php');

如果你有 php > 5.4 你也可以在monitoring.php中添加以下代码

if (session_status() == PHP_SESSION_NONE) {
  session_start();
}

来源:http://php.net/manual/en/function.session-status.php

【讨论】:

    【解决方案2】:

    如果您直接访问"php/monitoring.php",则需要在该脚本的开头使用session_start(),而不仅仅是在index.php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-06
      • 2020-08-10
      • 2014-03-15
      • 1970-01-01
      • 2019-08-25
      • 1970-01-01
      • 2016-03-10
      • 1970-01-01
      相关资源
      最近更新 更多