PHP Header Warning: Cannot modify header information

ok sekarang tinggal test ke online server, setelah semua kode algoritma rampung …

di test pada Lokal server (komputer OS Windows XP) dengan server Offline Wamp, oke tidak ada masalah, semua fungsi sudah berjalan

nyalakan FTP software, Connect ke server nun entah dimana. sep upload berjalan sukses

oche mari ditest modul2 yang telah berhasil dibuat … tampilan ok2 ja

mari test pada modul ‘engine’ yg melakukan update database dan file.

Oh my … what this (Sok inggris) sebuah pesan error muncul yang isinya :

Warning: Cannot modify header information ….

weits kenapa neh …

buka ulang code yang dibuat, upload ulang …

masih error…

cek modul2 semuanya ….

tetap saja …

setelah berjam2 mencari… akhir nya menemukan sebuah ide … GOOGLE (whew kenapa tidak dari tadi)

setelah bergoogling2 … menemukan beberapa kemungkinan sebab error itu ya itu adanya spasi antara <?PHP sehingga jadi <?[space]PHP

cek lagi semua file include …. hm tidak ada kesalahan ini …

ok kemungkinan ke dua …

adanya perintah echo sebelum header di deklarasikan

setelah dicek … ups, sepertiya iya …

kemarin mencoba methode baru, untuk menghemat file output …

dimana ‘engine’ dan ‘tampilan’ dari cms di gabungkan dalam satu file dan dipilih dengan menggunakan sebuah perinah Switch

ini contoh kode nya:

  1. <?PHP
  2. $m = $_GET[method];
  3. echo “<a href=’$_SERVER[PHP_SELF]?method=view’>view</a>'”;
  4. echo “<a href=’$_SERVER[PHP_SELF]?method=engine’>engine</a>”;
  5. switch($m){
  6. case ‘view’ :
  7. echo “modul view dipilih”;
  8. break;
  9. case ‘engine’ :
  10. header(“Location:$_SERVER[PHP_SELF]”);
  11. break;
  12. default: die(“Error”); break;
  13. }
  14. ?>

akses pada server lokal http://localhost/try/env.php?method=view

jika mengakses pada server lokal berbasis windows maka hal ini tidak akan bermasalah.

tetapi jika kita mengupload pada server lain yang berbasis Linux, dan pilihan url engine di klik,

maka akan muncul pesan error Warning dan script berhenti bekerja

error

lihat pesan kesalahannya output started at …./env.php:3 pada line ini lah diletakan perintah echo

dan … line 10 line ini berisi perintah header(

echo yang dideklarasikan sebelum header adalah penyebab kesalahan ini

lalu bagaimana solusinya…

tentukan mana modul yang memakai / membutuhkan perintah echo ini, dan letakan hanya disana.

pada script diatas perintah echo hanya dibutuhkan oleh modul ‘view’ maka hanya letakan didalam modul view ini

lalu bagaimana jika ternyata yg membuthkan perintah ini lebih dari satu modul ?

buat saja perintah echo menjadi fungsi, sehingga lebih menghemat waktu pengerjaan dan memudahkan kontrol kode

  1. <?PHP
  2. $m = $_GET[method];
  3. function myecho(){
  4. echo “<a href=’$_SERVER[PHP_SELF]?method=view’>view</a> \t”;
  5. echo “<a href=’$_SERVER[PHP_SELF]?method=engine’>engine</a>”;
  6. }

  7. switch($m){
  8. case ‘view’ :
  9. myecho();
  10. echo “\nmodul view dipilih”;
  11. break;
  12. case ‘engine’ :
  13. header(“Location:$_SERVER[PHP_SELF]?method=view”);
  14. break;
  15. default: die(“Error”); break;
  16. }
  17. ?>

pada contoh ini, myecho hanya akan ditampilkan pada modul yang membutuhkannya

dan saat diupload pada server Online /berbasis linux, tidak akan muncul lagi masalah warning yang tadi

cheers…

Published by

G3n1k

just to remember what i had known :)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s