PHP Session Kullanımı

Session Nedir ?

Sessionlar oturum bilgilerini saklamak için kullanılan yapılardır. Hepimiz illa ki bir siteye üye olup giriş yapmışızdır. İşte giriş yaptığımız sırada kullanıcı adımız ve şifremiz kontrol edilir. Eğer doğruysa bilgilerimiz session'a atanır. Bu en basit örneğiydi daha bir çok alanda kullanılabilir.

Session'lar sunucu tarafında tutulduğu için manipüle edilmesi zordur. Bu nedenle Cookie'lere göre daha güvenlidir.

Eğer kullanıcılar session'şarı silmezse (mesela üyelik girişi yaptıktan sonra çıkış yapmazsa gibi) tarayıcı kapandığı an session silinir.

Session'u Başlatma

Session kullanımında en önemli olaylardan biri budur. Session'u oluşturacağınız php sayfasında mutlaka session_start() diyerek sessionları başlatmanız gerekmektedir.

<?php
session_start(); //genelde sayfanın en başına yazılır.
?>

Session Oluşturma

Session oluşturmak için $_SESSION global değişkenini kullanırız.

Şimdi kullanıcı adı ve soyadını tutan bir session oluşturalım.

<?php
// Session'u başlatıyoruz
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Session bilgilerini tanımlıyoruz
$_SESSION["isim"] = "Zafer";
$_SESSION["soyisim"] = "YILDIZ";
echo "Kullanıcı bilgileri oluşturuldu";
?>
</body>
</html>

** session_start() fonksiyonu sayfanızdaki ilk kod olmalıdır. Doğru kullanımı sayfanın en başına yazılmasıdır.

- $_SESSION["degisken"]="deger"; şeklinde session'larımızı oluşturduk.

Session Değişkenlerinin Değerlerine Ulaşma

Oluşturduğumuz sessionun değerlerine ulaşmak için $_SESSION['degisken_adi'] komutuyla ulaşabiliriz.

<?php
echo $_SESSION['isim'];  // Yukarda oluşturduğumuz session'dan Zafer değeri gelir.
?>

Session Verilerini Düzenleme

Session verilerini değiştirmek, normal bir değişkenin değerini değiştirmek gibidir. Direk session değişkenine eşittir işareti ile yeni değeri yazarak değerini değiştirebiliriz.

<?php
session_start();
$_SESSION['isim'] = "Sarenur"; // Yukardaki sessionda varsayılar değer Zafer'di. Artık bu değer Sarenur olarak değişti.
?>

Session Verilerini Silme

Session değerlerini yok etmek için PHP dilinde iki adet yerleşik fonksiyon bulunmaktadır. session_destroy ve session_unset.

<?php
session_unset() // Tüm session değerlerini kaldırır.

session_destroy() // tüm session değerlerini yok eder.

?>


Temel session kullanımını anlattım. Şimdi sizlerle basit bir kullanıcı girişi örneği yapalım. 3 adet sayfamız olsun. Bunlardan biri form.php, diğeri de giris.php .

Form php de kullanıcıdan kullanıcı adı ve şifre bilgilerini alalım. Formu da giris.php sayfasına yönlendirelim. Giris sayfasında da 2 tane değişkenimiz olsun kullanıcı adı ve şifre diye. Eğer formdan gelen kullanıcı adı ve şifre değerleri, giris.php dosyasındaki kullanıcı adı ve şifre değerine eşitse session oluşturulsun ve ekranda oturum açıldı yazsın. Eğer eşit değilse de kullanıcı adı veya şifreniz yanlış diye ekranda mesaj yazsın ve form.php sayfasına gidebileceği bir link olsun. 3. sayfamız ise giriş başarılı olduğu anda oluşturduğumuz çıkış yap butonuna ait olsun. Bu butona bastığımızda sessionlar silinsin ve bizi form sayfasına yönlendirsin


form.php sayfamız

<!DOCTYPE html>
<html>
<head>
	<title>Kodlamak Lazım | Üye Girişi</title>
</head>
<body>
	<form action="giris.php" method="post">
		<label>Kullanıcı Adı:</label>
		<input type="text" name="kullanici_adi">
		<label>Şifre</label>
		<input type="password" name="sifre">
		<button type="submit">Giriş Yap</button>
	</form>
</body>
</html>


giris.php sayfamız

<?php 
session_start();
$kullanici_adi = "Zafer";
$sifre = "123456";


if ($_SERVER["REQUEST_METHOD"] == "POST") {
	$form_kullanici_adi = $_POST['kullanici_adi'];
	$form_sifre = $_POST['sifre'];


	if ($form_kullanici_adi == $kullanici_adi && $form_sifre == $sifre) {
		$_SESSION['kullanici_adi'] = $form_kullanici_adi;
		$_SESSION['sifre'] = $sifre;
		echo "Başarıyla Giriş yaptınız. <br>";
		echo "Hoşgeldiniz".$_SESSION['kullanici_adi'];


		echo "<a href='cikis.php'>Çıkış Yap</a>";
	}else{
		echo "Kullanıcı adı veya şifreyi yanlış girdiniz. Lütfen Tekrar deneyin. <br>";
		echo "<a href='form.php'>Form Sayfasına git</a>";
	}
}else
{
	header('Location: http://localhost/egitim/form.php');
	exit;
}
 ?>

cikis.php sayfamız

<?php
session_destroy();
header('Location: http://localhost/egitim/form.php');
exit;
?>


Yukardaki örnekte basit bir giriş çıkış sistemi yazdık. Aslında php dilinde giriş işlemlerinin temeli yukardaki gibidir. O kadar da zor değilmiş değil mi ? :)

YAZAR HAKKINDA

26 Yaşında. Araştırmayı seven, bir şeyler öğretmeye meraklı bir Bilgisayar Mühendisi

3 YORUM

x

06-March-2022

xxs


Ömer Türker

05-May-2022

Kısa ve öz çok güzel bir örnek olmus tesekkurler


silentman

08-August-2022

bazı yazılarınızda pek anlamıoyrdum ama bu iyiydi güzel anlatım olmuş:s


Yorum Yap

@COPYRIGHT KodlamakLazım Tüm Hakları Saklıdır.