Başlık bilgileri değiştirilemiyor - başlıklar zaten Neden onun oluyor, gönderilen [yinelenen]

5 Cevap php

Possible Duplicate:
Headers already sent by PHP

Ben başlığı kullanılarak sayfasını () çağırmak ister, ancak aşağıdaki hata oluşuyor

Başlık bilgileri değiştirilemiyor - başlıklar zaten gönderildi

neden?. Dışarı sıralamak için nasıl. Bana yardım et. Benim kod takılır

if ( $_SERVER['REQUEST_METHOD'] == 'POST' )
   {
         $adduser=new Users();
         if($adduser->checkmob()==true)
        {
            $adduser->addDB();
            $adduser->addCarrer();
            $adduser->addCricket();
            $adduser->addHealth();
            $adduser->addJokes();
            $adduser->addThoughts();
        ?>
    <script>alert ("Congratulations, You are now member of alertme serives");
    </script>

            <? header('Location: index.php');
          }
        else
            {
                ?><script>alert ("Mobile Number, Already Registered");</script>
                    <?}

    }

5 Cevap

PHP zaten kullanıcı aracısı içerik gönderdi ise header() başarısız olur. Senin durumunda, zaten <script>alert()</script> şeyi gönderdi.

Script herhangi bir çıktı üretir önce Bunu engellemek için, sadece bu çağrıyı eklemek:

ob_start();

Tüm detaylar burada: http://php.net/manual/en/book.outcontrol.php

Kodu baktığımızda da, bir yanlış anlama biraz var gibi görünüyor: başlık gönderildiği zaman yönlendirme aslında hemen olur. Herhangi bir içerik gönderilmeden önce başlık gönderilmesi gerekir, çünkü bu kullanıcının hiç JavaScript uyarı kutusu görmeden yönlendirme gerçekleşmesi anlamına gelir. Şeyleri (çok JavaScript bağlı hangi, ama bu farklı bir hikaye) çalışma almak için farklı bir yol hemen alert() şöyle bir JavaScript tabanlı yönlendirme kullanmak olacaktır.

Eğer php komut ('>') bitirmek ve etiketi ile html çıktısı başladığınızda o başlıkları gönderilir. Eğer çıkış olabilir ve ek bilgi ile daha sonra başlıkları göndermek gerekir içeriğini saklamak istiyorsanız, o zaman PHP Output Control fonksiyonları bakmak gerekir.

Herhangi bir çıkış gönderildikten sonra header () işlevi kullanamazsınız. Sen <script> etiketi ve içeriği gönderilen ve daha sonra kullanıcıyı yönlendirmek için çalıştık.

Eğer çıkış HTML yönlendirmeden önce, sayfa konumunu değiştirmek için HTML ve Javascript kullanmanız gerekiyorsa (durumda HTML Javascript aktif değil). Böyle bir şey:

<script>
alert('You are now a member of ...');
window.location = 'http://www.example.com';
</script>
<p> 
    If you are not automatically redirected, please <a href="http://www.exam...">click here</a>
</p>

Sen sayfaya başka bir çıkış yaptıktan sonra başlık göndermek olamaz - Burada anlatıldığı gibi: http://php.net/header

Ya gerek

  • çıktı tampon, veya
  • yönlendirme farklı bir türünü kullanmak

PHP Dokümanlar:

Herhangi bir gerçek çıktı gönderilmeden önce () normal HTML etiketleri, bir dosyada boş satırlar, ya da PHP ya denilen gerektiğini başlığını hatırlıyorum.

Eğer başlık aramadan önce Temelde, <script>alert();</script> javascript çıktısı ediliyor. Belki bir javascript yönlendirme amacıyla var? Yoksa onaylama kullanabilirsiniz ();