php - 包含另一个 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
解决方案
您包含的文件exit
在第 13 行调用。如果没有发出 POST 请求,则会触发此操作,这始终是正确的。您需要重构您的代码,使其不会仅仅因为缺少 POST 参数而终止脚本的执行。
通常,只需检查提交按钮的名称是否存在于 POST 中即可。所以假设你有这样的东西:
<input type="submit" name="mySubmitButton" />
你会像这样构造你的代码:
if (isset($_POST['mySubmitButton']) {
// do all the logic
}
这样,如果提交表单,将执行操作,否则不会发生任何事情,脚本的其余部分将正常执行,同时exit
完全终止执行 - 您包含此文件,因此它成为其中的一部分你正在做包含。
此外,如果您检查是否设置了提交按钮,则不必单独检查所有其他字段 - 当设置 POST 表单中的单个字段时,所有这些字段都将是(提交所有表单元素或没有,不可能有些是有些不是,这不像 GET)。
推荐阅读
- sql - 根据 Oracle 中的 id 获取列的 max 和 min()
- c# - 外语语音转文本和文本转语音
- c# - Unity:在 FixedUpdate() 或 Start() 中设置 RigidBody 速度?
- c# - .Net SMTP 客户端无法与 Linux 上的 postfix smtp 服务器一起使用
- python - Odoo - 多个数据库的应用程序内存占用
- flutter - ListView 越来越大
- shell - 如何使用 sed 从输出字符串中提取 Nginx 版本号(仅)?
- spring - 如何在微服务架构中返回 html 页面
- android - Pixel 3a 上的 Flash AOSP 图像
- angular - Kendo Angular Grid 给出“未解决的局部变量”