globals 设置失败

// 查询总条数
$total_count = intval(xiu_query('select count(1)
FROM users
where ' . $where)[0][0]);
if (empty($total_count)) {
  $GLOBALS['message'] = '没有符合条件信息';
  header('Location: /admin/job.php?p=1');
}

本来 当数据查询没有 是 会调到空白页面
之后我进行if判断 让他没有数据 就回到开始页面 但设置的 $GLOBALS['message'] 没有

开始页面中

  <?php if (isset($message)) : ?>
      <div class="alert alert-danger">
        <strong>错误!</strong><?php echo $message; ?>
      </div>
      <?php endif; ?>

错误部分永远没有

阅读 2.1k
4 个回答

你都用header跳转了,不相当于又重新运行了一遍程序,当然$message未定义了

新手上路,请多包涵

用的TP?可以使用Think系统常量李

你这是不同页面了,不同页面间传递数据考虑query string、cookie、session、第三方的如redis,甚至用数据库MySQL,global指的是在当前页面里的全局,不是所有页面的全局。

你做了重定向,php不是常驻内存的,重定向后的php进程和当前php进程不是同一个,你设的这个全局变量无法在在进程间共享。
如果非得这样做的话,可以通过重定向的url传递get参数,或者可以存到redis或数据库里。

但其实更好的做法是使用模板引擎

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题