MWN Website
ContactHome

Pesan kesalahan: Headers already sent

Untuk berdiskusi dengan sesama programer dan peminat PHP, bergabunglah dengan milis id-php, milis PHP Indonesia paling aktif sejak 2002. Untuk subscribe, kunjungi halaman web milis atau kirimkan email kosong ke id-php-subscribe@yahoogroups.com.

Jika Anda lebih suka forum diskusi berbasis web, kunjungi Forum PHP Masterweb.

Masalah

Saat menjalankan skrip PHP, di browser muncul pesan kesalahan dengan teks "headers already sent", contoh:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already 
sent by (output started at /home/sloki/user/t10000/sites/example.com/www/index.php:5

Penjelasan/solusi

Skrip PHP Anda telah "mencetak sesuatu". Seperti diketahui, dalam sebuah respon HTTP, header harus dikirim sebelum bodi. Jadi jika sudah mencetak sesuatu (ke bodi), maka header juga pasti sudah dikirimkan oleh PHP sebelum bodi. Sehingga hal-hal yang ingin kita lakukan yang melibatkan perubahan di header HTTP, misalnya mengeset cookie, session, mengirimkan header tambahan seperti Location, dll tidak lagi bisa dilakukan.

"Mencetak sesuatu" ini bisa karena Anda sengaja/tidak sengaja memberikan perintah echo atau print, atau ada kesalahan/warning dalam skrip sehingga PHP mencetak pesan kesalahan/warning, atau bisa juga karena ada baris kosong atau kode HTML yang ada di file sebelum skrip PHP Anda. Karena itu pastikanlah bahwa tag pembuka skrip PHP:

<?php

ada di baris pertama kolom pertama. Jangan ada teks lain atau baris kosong sebelumnya.

Alternatif solusi lain adalah menghidupkan output buffering, sebuah fitur di PHP yang menyebabkan PHP menyimpan dulu di buffer semua perintah mencetak ke bodi sampai skrip PHP selesai (atau sampai PHP disuruh secara eksplisit untuk memflush buffer). Dengan cara ini, kita dapat mengeset header sesudah perintah echo, karena perintah echo kita akan dibuffer dulu.

Cara menghidupkan output buffering adalah dengan menaruh baris fungsi ob_start(); di awal skrip Anda (sebelum semua output lain tentunya) atau menaruh baris:

output_buffering=1

di php.ini Anda.

Untuk berdiskusi dengan sesama programer dan peminat PHP, bergabunglah dengan milis id-php, milis PHP Indonesia paling aktif sejak 2002. Untuk subscribe, kunjungi halaman web milis atau kirimkan email kosong ke id-php-subscribe@yahoogroups.com.

Jika Anda lebih suka forum diskusi berbasis web, kunjungi Forum PHP Masterweb.


Navigasi

Feedback

Artikel Popular

  • Panduan pengguna Spanel
  • Peraturan dan Persetujuan
  • Email
  • Upload files
  • Panduan pengguna Masterkey
  • Kontak MWN
  • PHP
  • Setting SMTP
  • Tentang shared hosting
  • URL sementara
  • Tutorial instalasi phpBB
  • selengkapnya...
  • Artikel Terbaru

  • T:GD di PHP tidak mendukung fungsi fungsi imagecopyresampled
  • SQL Server
  • Artikel:Menginstal ulang server yang dihack
  • Artikel:Berbagai trik rename di command line
  • Sistem afiliasi
  • Artikel:Tool lama dengan wajah baru
  • Artikel:Mengenal link di Unix
  • Menggunakan TortoiseSVN
  • Peringatan dari browser untuk situs SSL yang tidak memiliki sertifikat sendiri
  • T:Pesan kesalahan: CGI Execution Error
  • Promosi
  • selengkapnya...
  • Hak cipta © 2006-2008 PT Master Web Network Konten ditulis dan dikoleksi oleh staf MWN. Artikel-artikel pada situs knowledge base ini dapat dikutip dan disalin secara bebas, namun mohon menyebutkan sumber dengan URL http://kb.masterweb.net/ atau teks "Knowledge Base MWN". MWN tidak bertanggung jawab atas akurasi dan/atau kekinian konten. MWN tidak bertanggung jawab atas komentar-komentar yang dikirim pembaca. Dengan memposting komentar Anda memberi hak penuh pada MWN untuk menampilkan komentar tersebut di manapun dan kapanpun, dan untuk mengedit atau menghapus komentar tersebut dengan cara bagaimanapun dan/atau karena alasan apapun.