Session adalah sebuah varibel sementara yang diletakkan di server. Di mana PHP bisa mengambil nilai yang tersimpan di server walaupun kita membuka halaman baru. Biasanya session akan hilang jika anda menutup browser.
adapun dalam artikel ini adalah lanjutan dari artikel sebelumnya. jika belum membacanya silahkan baca terelebih dahulu artikel sebelumnya yang berjudul membuat login sederhana dengan PHP PDO.
baik langsung saja. Session Pada Php biasanya diawali dengan kata sesion start () dan biasanya juga session start diletakkan di koneksi database. misalnya
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Created by onoPhp.blogspot.com. | |
*/ | |
session_start(); // ini adalah kode untuk memulai session | |
$host = "localhost"; | |
$username = "root"; | |
$password = ""; | |
try{ | |
$conn = new PDO("mysql:host=$host; dbname=onoPhp", $username, $password); | |
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); | |
echo "berhasil terkoneksi ke database"; | |
return $conn; | |
}catch (PDOException $e){ | |
echo "ERROR : " .$e->getMessage(); | |
} | |
?> |
dan untuk mendaftarkan sessionnya yang pertama kali biasanya terdapat di menu login.
contoh pada contoh login sebelummnya :
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
include 'config.php'; // panggil perintah koneksi database | |
if(!isset($_SESSION['username'] )== 0) { // cek session apakah kosong(belum login) maka alihkan ke index.php | |
header('Location: index.php'); | |
} | |
if(isset($_POST['login'])) { // mengecek apakah form variabelnya ada isinya | |
$username = $_POST['username']; // isi varibel dengan mengambil data username pada form | |
$password = $_POST['password']; // isi variabel dengan mengambil data password pada form | |
try { | |
$sql = "SELECT * FROM login WHERE username = :username AND password = :password"; // buat queri select | |
$stmt = $conn->prepare($sql); | |
$stmt->bindParam(':username', $username); | |
$stmt->bindParam(':password', $password); | |
$stmt->execute(); // jalankan query | |
$count = $stmt->rowCount(); // mengecek row | |
if($count == 1) { // jika rownya ada | |
$_SESSION['username'] = $username; // set sesion dengan variabel username | |
header("Location: index.php"); // lempar variabel ke tampilan index.php | |
return; | |
}else{ | |
echo "Anda tidak dapat login"; | |
} | |
} | |
catch(PDOException $e) { | |
echo $e->getMessage(); | |
} | |
} | |
?> | |
<!-- FORM LOGIN --> | |
<form action="" method="post"> | |
<table> | |
<tr> | |
<td>Username</td> | |
<td><input type="text" name="username"></td> | |
</tr> | |
<tr> | |
<td>Password</td> | |
<td><input type="password" name="password"></td> | |
</tr> | |
<tr> | |
<td> | |
<input type="submit" name="login" value="Login"> | |
</td> | |
</tr> | |
</table> | |
</form> |
adapun untuk menampilkan sessionnya cukup dengan melakukan echo dan panggil sessionnya
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
include 'config.php'; | |
if(isset($_SESSION['username'])== 0) { /* Halaman ini tidak dapat diakses jika belum ada yang login */ | |
header('Location: FormLogin.php'); | |
} | |
?> | |
<h1><p>welcome <?php echo $_SESSION['username']; ?></p></h1> | |
<br><a href="logout.php">Logout</a> | |
?> |
pada bagian H1 di tabel diatas itu memanggil sessionnya maka hasil akhirnya menghasilkan bentuk seperti ini.
ono pada gambar diatas adalah nama Sessionnya yang diambil dari inputan form pertama kali.
demikian semoga bermanfaat...
Post A Comment:
0 comments: