Permasalahan Penggunaan Header Location Aplikasi PHP

Suatu ketika saya pernah membuat sebuah aplikasi web dengan sebuah function yang fungsinya untuk menentukan sebuah user di-redirect ke alamat tertentu. Function tersebut memiliki beberapa data / variabel yang didapat dari database untuk disimpan kedalam session PHP. Berikut adalah script yang saya pakai :

<?php
session_start();
include 'config.php';

$username = $_POST['username'];
$password = $_POST['pass'];
$level = $_POST['level'];

if ($level == 'Admin') {
	// query untuk mendapatkan record dari username
	$query = "SELECT * FROM user WHERE username = '$username' and level = 'admin'";
	$hasil = mysql_query($query);
	$data = mysql_fetch_array($hasil);
	if ($password == $data['password'])
		{

		echo "sukses";
			// menyimpan username dan level ke dalam session
			$_SESSION['level'] = $data['level'];
			$_SESSION['username'] = $data['username'];
			$_SESSION['password'] = $data['password'];
			$_SESSION['email'] = $data['email'];

			// Permasalahan dimulai dari sini
			header("Location:admin/index.php");    
			exit;
		}
		else {
			echo "<center><h3>Login Error</h3> <br>";
			echo "<a href='index.php'>Back</a>";
		}
}
?>

Nah, jika dilihat dan dicoba pada server dengan spesifikasi PHP terbaru. Script diatas mungkin akan berjalan secara normal, tidak ada permasalahan redirect ke halaman admin. Namun, terjadilah sebuah “tragedi” disaat aplikasi web tersebut saya install di server dengan spesifikasi PHP lama.

Permasalahannya adalah setelah user melakukan login, halaman tidak mau melakukan redirect ke admin page. Web berhenti di layar putih. Hal ini menyebabkan saya mencoba mengutak-atik kembali script login tersebut. Akhirnya problem tersebut berada pada baris 25 script yang saya tulis di atas.

plusTroubleshooting

Setelah mencari dan Googling, akhirnya saya menemukan solusi yang menurut saya sangat simpel. Saya mengganti script Header Location tersebut dengan script Meta Refresh, berikut adalah script yang saya gunakan :

echo '<META HTTP-EQUIV="Refresh" Content="0; URL=admin/index.php">';
exit;

Saya coba lagi menggunakan server PHP lawas akhirnya berjalan dengan normal. Perlu diketahui juga, script Meta Refresh dengan url container ini merupakan fitur klasik di PHP namun bisa digunakan untuk versi PHP lawas. Selamat mencoba

 

Muhammad K Huda

A non exhausted blogger person within fullstack engineer (spicy food), open source religion, self-taught driver and maybe you know or don't like it. Simply says, Hello from Me!

 

3 thoughts on “Permasalahan Penggunaan Header Location Aplikasi PHP

  1. Oke, ini solusi mantep betul…
    Semula code saya begini :
    header(“location: form2_hasilpmb.php?id=$RegistrasiID&&ujian_id=$ujianID”);

    saya ganti menjadi =
    echo ”;

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.