PHP session - 防止加载整个页面

标签 php session

我对后端编程相当陌生,似乎无法找到一个简单(在我看来)问题的答案。我知道如果我只想显示给定用户的特定数据(例如购物车中的商品),我会使用 session ID 来识别该用户并将该特定用户的任何信息从数据库插入到我的页面通过 php 的 echo 函数。现在,如果我有一个包含很多行 html 代码的页面并且希望代码仅在有 session 时运行怎么办?我是否应该将所有代码放入 else {echo "...html code...";} 并让页面看起来像这样:

<?php
    session_start();    
    if (!isset($_SESSION['id'])) {
        header('location:../');
        exit();
    } else {
        echo "
            <html>
            <body>
                code
                code
                code
                code
            </body>
            </html> ";
    }
?>

这似乎可行,但整个方法似乎非常笨重,我的直觉告诉我,除非用户已登录,否则我根本不应该阻止每个页面加载。此外,此方法会产生各种问题带引号并使代码很难阅读和调试。

最佳答案

<?php
  session_start();    
  if (!isset($_SESSION['id'])) {
    header('location:../');
    exit(); // <-- terminates the current script
  }
// close the php tag and write your HTML :)
?>
<html>
  <body>
    code
    code
    <!-- if you need another php tag somewhere else -->
    <?php if(1 != 2) echo '<em>PHP works :)</em>'; ?>
    code
    code
  </body>
</html>

关于PHP session - 防止加载整个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33194203/

相关文章:

session - 使用断言 session 值的 CakePHP 测试

android - 不同 session 中 PWA 的可信 Web Activity

javascript - 从 Javascript 的编辑表单传递 id

php - 将 FILE 和 POST 变量绑定(bind)到 SQL DB 中

php - 如果没有 GROUP BY 子句,则将 GROUP 列(MIN()、MAX()、COUNT()、...)与没有 GROUP 列的混合是非法的

javascript - 如何设置 AJAX 间隔以便仅在页面仍处于焦点时刷新?

javascript - 在没有 GUI/X session 的情况下使用 GreaseMonkey 脚本运行 Firefox 的任何方法

php - 大型 PHP session 减慢 Web 应用程序

php - 如何使用 Laravel Eloquent select 返回数组?

php - 如何用印度语创建网站 - 卡纳达语