首页 > 解决方案 > 包含另一个 php 文件后页面不显示内容

问题描述

我正在尝试将一个 php 文件 (imgupload.php) 包含到另一个 (addbusiness.php) 中。我的 addbusiness.php 使用 imgupload.php 文件将数据上传到我的数据库,并将图像上传到文件夹。我正在使用一个表单,但我必须包含它,因为我想显示错误,并在我的“添加业务”页面上成功向用户发送消息。当我包含它时,我的页面不显示任何内容,它只是变成了一个空白页面。这是我的 addbusiness.php 文件的第一部分:

<?php
header('Content-type: text/html; charset=utf-8');
require_once("db_connect.php");
include('imgupload.php');




if (!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] === false) {
  header("Location: login.php");
} else {

?>

//HTML part starts here

标签: php

解决方案


您包含的文件exit在第 13 行调用。如果没有发出 POST 请求,则会触发此操作,这始终是正确的。您需要重构您的代码,使其不会仅仅因为缺少 POST 参数而终止脚本的执行。

通常,只需检查提交按钮的名称是否存在于 POST 中即可。所以假设你有这样的东西:

<input type="submit" name="mySubmitButton" />

你会像这样构造你的代码:

if (isset($_POST['mySubmitButton']) {
    // do all the logic
}

这样,如果提交表单,将执行操作,否则不会发生任何事情,脚本的其余部分将正常执行,同时exit完全终止执行 - 您包含此文件,因此它成为其中的一部分你正在做包含。

此外,如果您检查是否设置了提交按钮,则不必单独检查所有其他字段 - 当设置 POST 表单中的单个字段时,所有这些字段都将是(提交所有表单元素或没有,不可能有些是有些不是,这不像 GET)。


推荐阅读