PHP üzerinde birden fazla başlık ilan nasıl

6 Cevap php

Ben kullanıcı eylem dayalı farklı sayfalara benim kullanıcıları göndermek istediğiniz. Yani şöyle sayfanın üst kısmında birden fazla işlevleri yaptı:

<?php

function one() {
     header("location: pagea.php");
}
function two() {
     header("location: pageb.php");
}
function three() {
     header("location: pagec.php");
}

?>

Ben ilan başlıklarında yeniden çünkü Tabii ki ben bir hata alıyorum. Ben onları içeride fonksiyonları içeren yaşıyorum ve bir zamanda herhangi bir işlev arıyorum beri düzelecek olsa ilk başta ben. Ama yine de hata alıyorum. Bunu yapmanın başka bir yolu var mı?

6 Cevap

Bu fonksiyonları tüm değildir veya birden fazla çağrılan ya.

Böyle bir şey deneyin:

<?php

$page = // use an if statement veya whatever you need to figure out 
        //which page you need (pagea.php, etc.)

fnx($page)

function fnx($page) {
    header("location: " . $page);
}

?>

veya

<?php

$page = // use an if statement veya whatever you need to figure out 
        //which page you need (pagea.php, etc.)

header("location: " . $page);

?>

Script zaten çıkışı (eğer (başlık çağırmadan önce echo / print kullanılır)) üretti çünkü o hatayı alıyoruz. Eğer betik herhangi bir çıktı üretir önce () başlığı aramak gerekir.

From the PHP Manual

http://php.net/manual/en/function.header.php

Remember that header() must be called before any actual output is sent, ya normal HTML etiketleri, bir dosyada boş çizgiler veya PHP ile. It) () dahil, ya da (ihtiyaç ile kod okumak için çok yaygın bir hatadır, fonksiyonlar veya başka bir dosya erişim fonksiyonu, ve boşluk veya (başlıktan önce çıkış olan boş satırları) sahip denir. Tek bir PHP / HTML dosyasını kullanırken aynı sorun var.

Herhangi bir çıktı gönderdikten sonra () başlık çağırmak çalıştığınızda aşağıdaki hatayı alırsınız ...

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

function one() { return "location: pagea.php"; } function two() { return "location: pageb.php"; } function three() { return "location: pagec.php"; }

header(one()); // for example

Belki böyle bir şey?

Burada i birden fazla başlık göndermek gerektiğinde yapmak ister nasıl:

$headers = array(
   'Location' => 'http://www.stackoverflow.com',
   'Content-Type' => ' application/pdf',
);

foreach ($headers as $headerType => $headerValue)
{
   header($headerType . ': ' . $headerValue);
}

Eğer başlıklarını ya da göndermek mümkün olacak eğer headers_sent() kontrol etmek için kullanın.