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

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!

 

One thought on “Permasalahan Penggunaan Header Location Aplikasi PHP

Leave a Reply

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

Chaptcha * Time limit is exhausted. Please reload CAPTCHA.