Kamis, 17 Juni 2010

Tips PHP: Cara Me-Redirect ke Halaman Lain

       
Me-redirect ke halaman lain bisa digunakan dengan kode HTML dan bisa juga dengan pemrograman web seperti PHP.  Redirect lewat kode html telah dibahas di artikel lain di blog ini. Kali ini, kita akan me-redirect menggunakan php. Caranya cukup mudah, sama mudahnya dengan pakai html.

Dalam php, redirect bisa dilakukan menggunakan fungsi header(), Kodenya sebagai berikut:

<?php
    header( 'Location: http://tipsdaninfoku.blogspot.com/index.php' ) ;
?>

Dalam kode di atas, anda tinggal merubah url-nya (teks berwarna merah) dengan url target.

Sebagai catatan, fungsi redirect di atas akan berhasil jika tidak ada teks yang dikirim ke browser sebelum fungsi redirect tersebut dilakukan. Jadi jangan sampai ada tag html atau fungsi echo() atau print() sebelum fungsi header() tersebut di lakukan. Adapun kode-kode setelah fungsi header() tetap akan diproses namun tidak akan terkirim/ditampilkan ke browser.

Berikut ini adalah contoh yang SALAH untuk melakukan redirect:

<html>
<head></head>
<?php
    header( 'Location: http://tipsdaninfoku.blogspot.com/index.php' ) ;
?>

Jika kode di atas dieksekusi, maka fungsi redirect tidak akan berhasil, sebaliknya akan menampilkan pesan error. Ini karena telah ada teks yang dikirim ke browser sebelum fungsi header(), yaitu teks yang berwarna biru di atas.

Semoga info ini bermanfaat!

Artikel Lain Yang Berkaitan:

15 komentar:

  1. wah. ini yang saya butuhkan makasi ya mas

    BalasHapus
  2. mau tanya dikit gan...

    ada sebuah situs dengan link ini "http://labs.cracktivity.us/fakelogin/index.html"

    pada halaman index.html nantinya akan ada action yang membawa usernya ke login.php atau ini gan "http://labs.cracktivity.us/fakelogin/login.php", yang jadi permasalahan kita langsund didirect ke halaman berikutnya..yang ane tanyakan bisa kah kita berhenti dihalaman "http://labs.cracktivity.us/fakelogin/login.php"untuk mengetahui kemana input tadi dimasukkan atau diarahkan

    terima kasih

    BalasHapus
    Balasan
    1. Welcome mas Arminaven, url yg mas tuliskan kedua-duanya redirectnya berlangsung di server (respon HTTP/1.1 302 Found), jadi kurang lebih sama dgn yg ada di artikel ini, yaitu kalau php menggunakan perintah 'header()'

      Jadi tdk bisa berhenti di url-nya, karena informasi yg diterima browser adalah hanya berupa semacam instruksi/perintah utk menuju ke url lain, dan bukan dalam bentuk html yg bisa ditampilkan di browser.

      Hapus
  3. lha bagaimana cara reidrect fake login ke halaman asli dalam keadaan login (tanpa login ulang di halaman aslinya )

    BalasHapus
    Balasan
    1. f@ke login??? waduh ..... kita bahas yg positif aja ya mas biar manfaatnya dirasakan semua orang.

      Salam blogger

      Hapus
  4. ane bingung nih, ko di PC ane lancar2 aja walupun ada kode html sebelum tag <?php, nih kodingnya: http://pastebin.com/K02HDHcD
    tapi di PC lain gagal direct karena dan muncul warning, padahal di error_reporting warning sama2 di munculin...
    apakah versi php mempengaruhi?

    BalasHapus
  5. kaya gini juga berhasil direc: http://oi40.tinypic.com/im2v47.jpg
    php ane versi 5.3.8
    server: Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1

    BalasHapus
  6. salam kenal mas Demex Pjr.

    Warning atau pesan error akan muncul jika ada output yang telah terkirim ke browser sebelum perintah header. tapi ada pengecualiannya, yaitu jika setting "output_buffering" di dalam file "php.ini" disetel jadi "on" atau disetel dengan angka tertentu (selain dari "off").

    Kalau "output_buffering" bukan "off", maka data output yang akan dikirim sebelum perintah "header" akan ditampung dulu ke dalam buffer, nanti di akhir script, baru semua data dalam buffer akan dikirim sekaligus.

    coba mas periksa setting "output_buffering" di dalam file "php.ini", kemungkinan bukan "off".

    Keterangan lebih jelas :
    - http://php.net/manual/en/outcontrol.configuration.php
    - http://stackoverflow.com/questions/2832010/what-is-output-buffering
    - http://kb.site5.com/php/how-to-repair-headers-already-sent-php-errors/

    BalasHapus
  7. Balasan
    1. Halo Rizky, apanya yg salah? bisa share ga? siapa tahu saya bisa bantu.

      Hapus
  8. makasi infonya mas..tapi saya masih bingung, maaf ini pertanyaan awam banget.

    saya mau redirect satu halaman aja ke halaman lain, nemuin kode html sebuah halaman biar bisa diedit di mananya ya? -_-

    saya mau edit di website berbasis wordpress mas >> Info Kesehatan

    BalasHapus
    Balasan
    1. Makasih komentarnya, btw, web kesehatannya bermanfaat sekali!

      Kalau mengenai redirect di wordpress, saya rasa bisa mencari plugin khusus untuk redirection. ini beberapa contoh plugin redirect:
      - https://wordpress.org/plugins/redirection/
      - https://wordpress.org/plugins/quick-pagepost-redirect-plugin/
      - https://wordpress.org/plugins/seo-redirection/
      - https://wordpress.org/plugins/page-links-to/
      - https://wordpress.org/plugins/simple-301-redirects

      Smoga bermanfaat!

      Hapus
  9. bermanfaat sekali artikelnya..
    tp ada sedikit masalah mas, sy punya tiga halaman : inputlogin.php, eksekusilogin.php, menu.php (header sy masukan ke eksekusilogin.php)
    setelah di eksekusi dan masuk ke halaman menu.php kok alamat web-nya ttp di eksekusilogin.php bkn menu.php ????
    mohon dibantu mas

    BalasHapus
  10. halo mas arievy, maaf lambat merespon. Itu harus dilihat scriptnya mas supaya bisa dicari letak kesalahannya.

    BalasHapus