PHP session - 防止整个页面加载

Alz*_*lze 2 php session

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

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

这似乎有效,但整个方法似乎非常庞大,我的直觉告诉我,除非用户登录,否则我根本不应该阻止每个页面加载。此外,这种方法会产生各种问题,包括引号和使代码非常难以阅读和调试。

som*_*One 7

<?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>
Run Code Online (Sandbox Code Playgroud)