Home > PHP > Login dan Logout pada Halaman Berframe

Login dan Logout pada Halaman Berframe

Mungkin kita pernah menghadapi masalah apabila kita melakukan login pada halaman yang tidak berframe, jika login berhasil, maka akan masuk ke halaman yang berframe.. Jika kita akan melakukan logout, dan akan melakukan login kembali tanpa mengetik halaman login tersebut, kita sering mendapatkan masalah. Dari masalah itu lah, saya mencoba menemukan jalan keluarnya..

Berikut script untuk pemecahan diatas :

login.php

<?php
session_start();

if (isset($_POST[‘login’])) //untuk mengetahui apakah tombol submit telah ditekan
{
$username = $_POST[‘username’];
$password = $_POST[‘password’];

if ( ($username == ‘php”) && ($password == “123’) ) //misalkan username = php, dan password = 123
{
$_SESSION[‘user’] = $username;
?>
<script language=’JavaScript’>document.location=’menu.html’;</script> <!– jika username&pass betul ke halaman menu.html !–>
<?php
}
else
{
session_destroy();
?>
<script language=’JavaScript’>document.location=’login.php’;</script> <!– jika salah, kembali login!–>
<?php
}
}
?>

<form method=’post’ action=’login.php’>
<B>Login dan Logout pada Halaman yang Ber-Frame</B>
<table>
<tr>
<td>Username : </td>
<td><input type=’text’ name=’username’></td>
<td>Username = php</td>
</tr>
<tr>
<td>Password : </td>
<td><input type=’password’ name=’password’></td>
<td>Password = 123</td>
</tr>
<tr>
<td colspan=’2′ align=’right'<input type=’submit’ name=’login’ value=’Login’></td>
</tr>
</table>
</form>

menu.html

<html>
<head>
<title>Login dan Logout pada Halaman Ber-Frame</title>
</head>

<frameset rows=’100,*’ border=’1′>
<frame src=’frame1.html’ noresize scrolling=’no’>
<frameset rows=’*’ cols=’280,*’ border=’1′ noresize>
<frame src=’frame2.html’>
<frame src=’frame3.html’ name=’frame’>
</frameset>
</frameset>
</frameset>
</html>

frame1.html

Ini Frame 1

frame2.html

Ini Frame 2<BR>
<a href=’logout.php’ target=’frame’>Logout</a>

frame3.html

Ini Frame 3

logout.php

<?php
session_start();
session_destroy();
?>
<script language=”JavaScript”>alert(“Anda Berhasil Logout”);document.location=’login.php'</script>

Apabila script login.php diatas apabila dijalankan maka akan tampil seperti gambar disamping ini.

Kemudian isi username dengan php, dan password dengan 123 kemudian tekan Login. Setelah Anda melakukan login, Anda akan terhubung ke halaman yang berframe, yaitu menu.html yang dapat dilihat pada gambar dibawah ini:

Kita menganggap bahwa pada frame 2 merupakan menu yang akan kita gunakan. Sehingga saya memberi link logout pada frame 2. Kemudian jika Anda akan melakukan logout, klik link tersebut, maka akan muncul gambar seperti di bawah ini:

Setelah Anda mengisi username, dan pasword kembali, maka Anda akan mendapatkan tampilan seperti berikut :

Anda tentu bingung mengapa hal tersebut terjadi. Apabila Anda melakukan logout dan login kembali, maka hasilnya akan tetap sama.

Untuk mengatasi hal tersebut di atas, kita hanya perlu melakukan perubahan sedikit pada script login.php dan logout.php, yaitu :

Pada script login.php, Anda menambahkan script berikut yang saya cetak tebal, dan miring :

<?php

……..

if ( ($username == “php”) && ($password == “123”) ) //misalkan username = php, dan password = 123
{
$_SESSION[‘user’] = $username;

if (isset($_POST[‘new’])) //mengecek apakah nilai yang dikirim hidden ada atau tidak
{
?>
<script language=’JavaScript’>document.location=’frame3.html’;</script> <!– jika username&pass betul langsung ke halaman frame3.html !–>
<?php
}
else
{
?>
<script language=’JavaScript’>document.location=’menu.html’;</script> <!– jika username&pass betul ke halaman menu.html !–>
<?php
}
}

…..

?>

….

<table>

<?php
if (isset($_GET[‘baru’])) //tangkap nilai baru dari logout.php
{
$baru = $_GET[‘baru’];
{
?>
<input type=’hidden’ name=’new’ value ='<?=$baru?>’> <!– mengirim nilai tersembunyi –>
<?php
}
}
?>

<tr>

…..

Sedangkan pada file logout.php, Anda mengganti file tersebut dengan script di bawah :

<?php
session_start();
session_destroy();
?>
<script language=”JavaScript”>alert(“Anda Berhasil Logout”);document.location=’login.php?baru=1‘</script>

Pada script logout.php yang baru, kita menambahkan variabel baru dengan nilai 1 yang kemudian dikirimkan ke file login.php untuk membedakan dimana login yang untuk pertama kali atau apabila akan melakukan login kembali setelah logout.

download script

Semoga script di atas dapat bermanfaat bagi Anda..

Categories: PHP
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: