ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

PHP我应该在ob_start之后使用ob_clean

2019-10-30 11:28:08  阅读:193  来源: 互联网

标签:ob-start header mysql php


我在php和mysql中制作了一个简单的登录系统,但是我不断收到错误消息,说明已经发送了标头,并且使用ob_start可以解决此问题,但是我不确定以后是否应该在页脚使用ob_clean?

另外,当我登录到帐户页面时,错误消息就会出现,说标题已在上一页中发送-> header(“ Location:account.php”);但是我必须在用户登录时重定向用户.

我的登录页面如下所示

require_once('models/init.php');  // db connection and other functions
include('header.php');  // some html code for the header, with one line php-function to check if user is logged in, if so show "home" tab instead of "login"


{ 

  php code to check if username/pass matches etc, and if so redirect to account page

  header("Location: account.php");

}

 echo "<form>" // display the login form

include("footer"); // including footer, some html/js code.

如果我在header.php文件中使用ob_start,则上面的代码有效.但是之后我应该在footer.php文件中使用ob_clean吗?

抱歉,如果不清楚,英语不是我的母语

谢谢!

解决方法:

一般原则是您不能在header()之前使用echo.因此,这将永远无法工作:

echo "this is my header";
header("Location: account.php");
echo "this is my footer";

但是,如果您先发送标头,则一切正常:

header("Location: account.php");
echo "this is my header";
echo "this is my footer";

对于您的情况,应在添加标题之前进行检查:

require_once('models/init.php');  // db connection and other functions

if ($user_is_logged_in) { // Do your check here
    header("Location: account.php");
}

include('header.php');  // some html code for the header, with one line php-function to check if user is logged in, if so show "home" tab instead of "login"
echo "<form>" // display the login form
include("footer"); // including footer, some html/js code.

标签:ob-start,header,mysql,php
来源: https://codeday.me/bug/20191030/1967237.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有