PHP - 加载静态类发送标头

Krz*_*ter 1 html css php

我有一个连接MySQL DB的HTML/CSS/PHP简单页面.

加载"index.php"并显示"mainPage :: showSectionLogin($ _ SESSION ['login'])"

<?php session_start(); ?>
<?php require_once 'clMainPage.php'; ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
  <HEAD>
    <?php mainPage::setSectionHEAD() ?>
    <LINK rel="stylesheet" type="text/css" href="style.css">
  </HEAD>
  <BODY>
    <DIV id="sidebar">
      <?php mainPage::showSectionLogin($_SESSION['login']) ?>
      <?php mainPage::showSidebarMenu($_SESSION['login']) ?>
    </DIV>
    <DIV id="main">
      <?php mainPage::showActualNews(5) ?>
    </DIV>
  </BODY>
</HTML>
Run Code Online (Sandbox Code Playgroud)

填写日志表单后执行"login.php"

<?php session_start(); ?> 
<?php require_once 'clMainPage.php'; ?>
<?php
if($_SERVER["REQUEST_METHOD"] == "POST") {
  $dblink = mainPage::openDBconn();
  $result = mainPage::checkIfUserCanLogIn($dblink, $_POST['inpLogin'], $_POST['inpPassw']);

  if (mysql_num_rows($result) == 1) {
    $row = mysql_fetch_array($result);
    mainPage::logUserIn($row['login'], $row['passw']);
  }
  else
  {
    die("error checking user: there is no such user in a database");
  }

  mainPage::closeDBconn($dblink);
  header("refresh:1;url=index.php");
} ?>
Run Code Online (Sandbox Code Playgroud)

在登录时,我没有理解为什么"header("refresh:1; url = index.php");" (第18行)说"require_once"clMainPage.php';" 在文件"login.php"(第2行)中发送标题.怎么可能"require_once'clMainPage.php';",这是一个只包含静态函数的类声明,实际上发送标题?

Ala*_*law 5

在第1行关闭php标记后有空格,这就是发送标题的内容

<?php
session_start();
require_once 'clMainPage.php';
if($_SERVER["REQUEST_METHOD"] == "POST") {
Run Code Online (Sandbox Code Playgroud)

  • 不要在php文件末尾使用结束标记,这在Zend的约定和编码标准文档中 (2认同)