标头php无法正常工作

dea*_*id 2 php header

我正在尝试使用标头发送信息,但我的html已经输出信息,我试图通过使用ob_start()函数来解决问题无济于事

    ob_start();
    require('RegisterPage.php');
    if(isset($_POST['register']))
    {
      if(register($errormsg,$regnumber))
      {
        $to = $_POST['email'];
        $subject = "Registration";
        $txt = "You need to return to the Classic Records homepage and enter the number given in order to finish your registration ".$regnumber."";
        $headers = "From: registration@greenwichtutoring.com";
        mail($to,$subject,$txt,$headers);
        header('Location:emailNotification.html');
      }
      else $error=$errormsg;
    }
    ob_end_flush();
Run Code Online (Sandbox Code Playgroud)

The*_*zoo 6

检查ob_start()函数之前是否包含任何脚本正在输出HTML.有时,包含的文件可以在PHP结束标记之后包含空格.那个空间将按原样排除.要解决此问题,请保留文件中的PHP结束标记.

例如

<?php
 class someClass {
  ...
 }
?><whitespace>
Run Code Online (Sandbox Code Playgroud)

可以给你一些好头痛.这很好,并解决了上述问题:

<?php
 class someClass {
  ...
 }
Run Code Online (Sandbox Code Playgroud)


Gum*_*mbo 5

您需要ob_start在任何输出发生之前调用.因此,例如,在你的主PHP脚本文件的第一条语句(确保没有什么你之前<?php喜欢的一些空白BOM).