Catatan Seorang Prajurit Kecil

Ikon

biarlah semua itu berjalan sesuai "skenario" NYA – jika kau telusuri, semua logika itu akan kau temukan

Mengantisipasi Error Header Pada PHP


Pada saat kita menggunakan fungsi header pada PHP terkadang kita sering menjumpai adanya error seperti berikut

Warning: Cannot modify header information – headers already sent by (output started at /home/akaun/public_html/config.php:42) in /home/akaun/public_html/config.php on line 43

Hal biasanya terjadi karena

  1. Cookies
  2. Session
  3. require, require_once,include dan seebagainya

Karena header information sudah dikirim sehingga menyebabkan pengiriman data error, nah untuk mengatasi masalah ini kita bisa melakukan buffer pada header dengan menggunakan fungsi ob_start() dan ob_end_flush(). berikut ini cara penggunaannya

<?php

ob_start();

/*

script php kita

*/

ob_end_flush();

?>

Tempatkan fungsi ob_start() di awal sytnax dan ob_end_flush() diakhir syntax. ob_start berfungsi untuk melakukan buffer header sedangkan ob_end_flush() berfungsi untuk membebaskan buffer tersebut.

Selamat Mencoba.

Iklan

Filed under: Pure PHP

30 Responses

  1. jury berkata:

    makasih bro ntar ni gw coba

  2. yudha berkata:

    kok errornya tetep ya

  3. errornya kayak gimana mas….? bisa di posting disini ga..?

  4. Muflihana berkata:

    sama mas saya dah coba sesuai dengan panduan, tapi tetep error dengan keterangan yg sama.

  5. Muflihana berkata:

    Cannot modify header information – headers already sent by (output started at C:\xampp\htdocs\filosofi\admin\media.php:26) in

  6. sayidin berkata:

    mas errornya tetap nih gimana ,ya seperti error yang mas berikan pada contoh error sintak ini
    program saya hanya gini,kenapa bisa error ya mas tolong cepat

    if($_POST[‘excel’])
    {
    ob_start();
    $_SESSION[‘tanggalawal’] = $_POST[‘tanggalawal’];
    $_SESSION[‘bulanawal’] = $_POST[‘bulanawal’];
    $_SESSION[‘tahunawal’] = $_POST[‘tahunawal’];
    $_SESSION[‘tanggalakhir’] = $_POST[‘tanggalakhir’];
    $_SESSION[‘bulanakhir’] = $_POST[‘bulanakhir’];
    $_SESSION[‘tahunakhir’] = $_POST[‘tahunakhir’];
    header(‘location:pilih1.php’);
    ob_end_flush();
    }

    q tunggu bantuan mas cepat jumat program sya dah harus dikumpulkan hanya satu masalahnya yaitu seperti diatas mas,kirimkan bantuan mas ke alamat saya sayidin_re@yahoo.com

    thanks

  7. deddy berkata:

    iya mas, saya udah coba kok tetep error ya….
    ato saya yang salah ngeletakin nya??
    mohon pencerahannya ya mas,
    ini saya sertakan scriptnya, seharusnya bgmn??

    Cinema21 Galaxy

  8. klo g salah error kaya gitu keluar kalo kita coba meredirect pake header tapi kita udah mengechokan / ada skrip html sebelumnya (sebelum perintah header tsb)…

  9. sorry, kemaren rada sibuk jadi lama ga buka blog…

    ob_start() disimpan di awal page php (sebelum script lainnya)

    ob_end_flush() disimpan diakhir page php (sesudah script lainnya)

    terkadang jika masih terdapat error, coba check settingan session pada php.ini nya

  10. eja berkata:

    Thx X bro…………
    hee….

  11. arya berkata:

    Thanks bro.. berhasil!!

  12. goez berkata:

    sama2,…

  13. danwas berkata:

    thx bro.. uda kasih tips
    warning uda ilang tapi
    ko
    header(“location:tampil_user.php”);
    gw ko ga jalan
    browser ga mau manggil tampil_user.php
    thx..

  14. jika berkata:

    Kalo sy pake template dari revolution wp themes mengalami hal sama trus tambahan script ob ditaruh di bagian mana?thanks sebelumnya

  15. dafi berkata:

    sama neh, error jg
    gmn ya caranya supaya gak error….
    maklum, masi newbei
    he”

  16. geroed berkata:

    thx bgt bro..

  17. Achmad Husaini berkata:

    Assalamu’alaikum wr. wb.
    salam keal yaaaa,
    hanya mau sharing z, kl dutulis seperti itu error header(“location:link”) akan tetap terjadi karena diatas script header tersebut masih ada script yang dieksekusi oleh php. jadi, syarat agar tidak error yaitu melatakkan fungsi header di bagian atas tanpa di dahului script yang lainnya.
    contoh
    if(isset($_POST[‘login’]))
    {
    header(“location:./login.php”); //header ini benar
    echo ” password error”;
    }else{
    echo “password benar”;
    header(“location:./next.php”); // header ini error
    }

    thanks,

    http://husainiku.co.cc/

    wassalamu’alaikum wr. wbh.

  18. fatart berkata:

    script yg d atas di taro d index.php atau d mana mas??..

  19. dian berkata:

    udh dimasukin kok msih eror ya mas? trus itu klo dilihat setingan php.ini apanya ya mas yg disetting biar header bisa muncul?? mksh

  20. Cara rubah php.ini gimana mas ?

  21. Gaptek berkata:

    Thanks gan, berhasil!

  22. dailani berkata:

    wowowow..thanks banyak..:D

  23. Aries Apriliyanto berkata:

    mas ko saya muncul error seperti ini ya?

    Fatal error: Call to undefined function ob_end_flash() in C:\xampp\htdocs\manualisasi\insert.php on line 22

  24. romanmoslem berkata:

    Mantap… bs beresin masalah header yang g maksimal gara2 proses perhitungan kelamaan…

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: