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.

Filed under: Pure PHP

30 Responses

  1. jury mengatakan:

    makasih bro ntar ni gw coba

  2. yudha mengatakan:

    kok errornya tetep ya

  3. Ahmad Agus Al Umar mengatakan:

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

  4. Muflihana mengatakan:

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

  5. Muflihana mengatakan:

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

  6. sayidin mengatakan:

    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 mengatakan:

    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. irfan satriadarma mengatakan:

    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. Ahmad Agus Al Umar mengatakan:

    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 mengatakan:

    Thx X bro…………
    hee….

  11. arya mengatakan:

    Thanks bro.. berhasil!!

  12. goez mengatakan:

    sama2,…

  13. danwas mengatakan:

    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 mengatakan:

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

  15. dafi mengatakan:

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

  16. geroed mengatakan:

    thx bgt bro..

  17. Achmad Husaini mengatakan:

    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 mengatakan:

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

  19. dian mengatakan:

    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. Jakartalantern.com mengatakan:

    Cara rubah php.ini gimana mas ?

  21. Gaptek mengatakan:

    Thanks gan, berhasil!

  22. dailani mengatakan:

    wowowow..thanks banyak..:D

  23. tank gan…
    bantu bangett…

  24. Aries Apriliyanto mengatakan:

    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

  25. romanmoslem mengatakan:

    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: