başlık php çalışmıyor

6 Cevap php

iyi bilgi göndermek için başlık kullanmaya çalışıyorum, ama benim html bilgileri zaten çıktısı, ben boşuna ob_start () fonksiyonu ile sorunu çözmeye çalıştı

    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();

6 Cevap

Ob_start () işlevi HTML çıktısı önce herhangi bir komut dahil olmadığını kontrol edin. Bazen de dahil dosya PHP kapanış etiketinden sonra bir boşluk içerebilir. Bu alanı olarak outputed edilecektir. Bunu düzeltmek için, dosyadan PHP kapanış etiketi bırakın.

Örneğin

<?php
 class someClass {
  ...
 }
?><whitespace>

Sana bazı iyi baş ağrısı verebilir. Bu ince ve yukarıdaki sorunu giderir:

<?php
 class someClass {
  ...
 }

Siz herhangi bir çıkış oldu önce ob_start aramak gerekir. Yani, örneğin, ana PHP komut dosyası ilk ifadesi olarak (hiçbir şey BOM bazı boşluklarla gibi <?php önce olduğundan emin olun).

Burada farklı bir sayfaya and Bir mesaj göstermeye yönlendirmek için çalışıyoruz. Bu maddeleştirmek olamaz.

Bunun yerine, bir bağlantı ya da eko-ing kullanmayı deneyin:

<meta http-equiv="Refresh" content="(delay in seconds);URL=(destination)">

senin içinde <HEAD>.

Senin durumunda, bu yüzden, anlık olmak istiyorum:

<meta http-equiv="Refresh" content="0;URL=emailNotification.html">

Daha iyi bir alternatif, if kadar sonra sadece not require the page etmektir.

I doğru başlığını hatırlıyorum eğer (); php script yürütme sonunda çalıştırılır, bu nedenle eğer başında taşımak deneyin

Şerefe

Sen html değil çıktıyı php mantık tampon var. Örn:

ob_start();
<html>...
/* PHP */
...
ob_end_flush();
header('Location: http://www.foo.com/emailNotification.html');

1 space after Location:

and

full url

Sizin Dinamik HTTP_HOST
ile

header('Location: http://'.$_SERVER["HTTP_HOST"].'/emailNotification.html');

Chris.