PHP başlıklar zaten [yinelenen] hatası gönderdi

3 Cevap php

Bu soru burada zaten bir cevabı var:

3 Cevap

Belirtildiği gibi bilgi echo() 'd, print()' d veya başka web tarayıcısı gönderilen olduğunda, bu hata neden olur. Sen sözü session_start() dahil bir dosya olduğunu. Ebeveyn / içeren dosya bu benziyor mu?

<?php
  // Some processing code, etc.
?>
<html>
<body>
Hello here's some content
<?php include('session_starter.php');
</body>
</html>

Ebeveyn / içeren dosyanın üstündeki php.ini çıktı tamponlama veya ob_start() aracılığıyla dönüm bu ilgilenir.

Ayrıca, ana php dosyasında satırsonu lider / firar için kontrol edin:

 <- There's a newline here, so output has started
<?php
 // Do some stuff
?> <- Newline here, output has started
<?php
 include('session_starter.php');
?>

Bir hex editörü kullanarak <?php session_start(); daha önce hiç görünmeyen bir karakter olduğunu kontrol edin. UTF-8 için dosyayı dönüştürmek, daha sonra birçok editörler editörü görünmez olan, başında BOM karakter eklemek, ama bir hex editörü sırıtmak yok.

Tüm bu sorunların kurtulmak için mutlak en kolay yolu sağlamaktır output buffering.

Php.ini içinde Açık output_buffering değerini ayarlama

output_buffering = On