Saturday, June 14, 2025

Cara Mengatasi Warning: Cannot Modify Header Information di PHP

 


 

 "Warning: Cannot Modify Header Information – Headers Already Sent" di PHP

 Arti Error

Error ini muncul saat kamu mencoba mengirim header HTTP (misalnya dengan header(), setcookie(), atau session_start()), setelah PHP sudah mengirim output ke browser, seperti teks, spasi kosong, HTML, atau echo/print.

 Contoh Error:

Warning: Cannot modify header information - headers already sent by (output started at /path/file.php:5)

Artinya, baris 5 di file tersebut sudah mengirim output ke browser sebelum fungsi header() dipanggil.

 Solusi dan Penyebab Umum

1.  Output Dikirim Sebelum header()

echo "Selamat datang!";
header("Location: dashboard.php"); //  ERROR!

 Solusi:
Tempatkan header() sebelum output apapun.

header("Location: dashboard.php");
exit;

2.  Spasi Kosong atau Enter di Awal File PHP

//  Ada spasi kosong sebelum tag pembuka PHP
␣␣<?php
session_start();

 Solusi:
Hapus semua karakter sebelum <?php dan sesudah ?> (jika ada).

<?php
session_start();

3.  Menutup File PHP dengan ?> lalu Ada Spasi

<?php
// kode PHP
?>

<!-- Ini akan mengirim output -->

 Solusi:

  • Jangan pakai ?> di akhir file PHP murni.
  • Atau pastikan tidak ada spasi/enter setelahnya.

4.  Menggunakan echo/print Sebelum header()

echo "Redirecting...";
header("Location: halaman.php"); //  Error

 Solusi:
Gunakan header() dulu, lalu exit:

header("Location: halaman.php");
exit;

5.  Gunakan Output Buffering

Kalau kamu tidak bisa menghindari output di awal, kamu bisa mengaktifkan output buffering:

<?php
ob_start(); // Aktifkan buffering
session_start();
header("Location: index.php");
ob_end_flush(); // Opsional: kirim output

 Tips Mendeteksi Error Ini:

  • Gunakan editor seperti VS Code untuk mendeteksi spasi tersembunyi.
  • Lihat lokasi file dan baris pada pesan error: biasanya menunjukkan di mana output pertama terjadi.
  • Cari tahu file mana yang mengirim output sebelum header() dipanggil.
Posted in 

0 comments:

Post a Comment