PHP Kafa sorun bile i ob_end_flush () ob_start () kullanın ve

5 Cevap php

im () ob_start kullanırken im başlık sorun oluyor; Bir sayfa ve ob_end_flush başlangıcı olarak (); sayfa sonu. çünkü bazı sorgu yürütme sonra başlık fonksiyonunu kullanarak im

Benim kod burada

 <?php ob_start();?>
    <?php include_once("header.php"); ?>
    <?php global $db;

       $countstmt="SELECT COUNT(*) FROM tbl_lib_hours dh WHERE book_id IN(
      SELECT book_id FROM tbl_book WHERE user_id=".$_SESSION['uid'].") "; 

          $delHourExist=$db->query($countstmt);  /* i m using ez mysql class*/ output is 1

       if($delHourExist)
      {
       header("location:edit_delivery_hours.php");
      }
  -------------------
  --------------------
  --------------------
  some php codes
  --------------------
  --------------------
<?php include_once('footer.php');
<?php ob_end_flush();?>

here one thing i tell u in header.php there i also add ob_start(); and in footer.php i added ob_end_flush(); , but i think that is not problem, although other pages are running with same script i write above

Bana ne yapacağımı söyleyin lütfen?

EDIT: i m getting

Warning: Cannot modify header information - headers already sent in D:\xampp\htdocs\project\add_book_hours.php on line 9

5 Cevap

Biraz uyarı mesajı ilk içerik istemciye gönderilmesine neden kod konumunu içermez şaşkın değilim. Fonksiyonu headers_sent() da, bu konumu dönebilirsiniz. Yani, hata ayıklama amacıyla, lütfen deneyin

if($delHourExist)
{
  if ( headers_sent($path, $lineno) ) {
    echo '<pre>Debug: output started at ', $path, ':', $lineno, "</pre>\n";
  }
  header("location: edit_delivery_hours.php");
}

İlk önce herhangi bir boşluk var mı <?php?

Bir UTF8-BOM dosyanın başında var mı?

Kodunuzdaki görünmez çıktı bir sürü var:

<?php ob_start();?> --- THERE IS A LINE RETURN HERE ---
--- SPACES OR TABS ---<?php include_once("header.php"); ?> --- LINE RETURN ---
--- AND HERE ---<?php global $db;
     ...

Php etiketleri başlangıç ​​ve bitiş çıkın. Sadece bunu:

<?php 
    ob_start();
    include_once("header.php");
    global $db;
    ...

Çağrı ob_start için önce etiketleri dışında hiçbir çıkışı yoktur emin, ve hiçbir boşluk emin olun (). Hata hat 9 üzerinde ise, sorun olabilir bu çağrıya önce çizgiler bir demet var. Numaralandırılmış bu hatlar, tüm göndermek isteyebilirsiniz, bu yüzden dikkatli onlara bakabilirsiniz.

Ben sorun zaten çıkışa başka bir şey gönderdiğiniz adres sonra, başlıklarını değiştirmeye çalışıyor olabilir düşünüyorum. Arabelleğe kullanırken bile, bu mümkün olduğunu sanmıyorum. Ben mevcut tampon atın ve başlık bilgilerini yazmak için () ob_end_clean aramak gerektiğini düşünüyorum.

I resolve mi problem with some white spaces in my script with ob_start(); ob_end_flush(); and ob_end_clean(); So you could test your code

<?php
ob_start();
include_once("header.php");

global $db;
$countstmt="SELECT COUNT(*) FROM tbl_lib_hours dh WHERE book_id IN(SELECT book_id FROM tbl_book WHERE user_id=".$_SESSION['uid'].")";
$delHourExist=$db->query($countstmt);  
if($delHourExist)
{
ob_end_flush();
ob_end_clean();
header("location:edit_delivery_hours.php");
}
include_once('footer.php');
?>