Pvp server tanıtım alanı | Knight Online | Metin 2 | Silkroad | Minecraft




Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
PHP DERS 5
Pablo Escobar
#1
PHP Session OTURUM YÖNETİMİ
PHP de session olayını cookie ile karşılaştırarak yapalım. Çünkü kullanım ve uygulama olarak cookie ile aynı ama teknik olarak farklı. Session aynı çerezlerde olduğu gibi $_SESSION global dizisi ile okunur, fakat yazılması için çerezlerdeki gibi bir fonksiyona ihtiyaç duymaz.
Çerezlerin son kullanma tarihini biz belirlerken sessionlar tarayıcının kapatılmasıyla silinir. Yani siteye girildiğinde oluşturacağımız sessionlar, girenin sayfayı kapatmasıyla silinecektir.
Kullanım, oluşturma ve silme dışındaki asıl teknik farkı da sessionların tarayıcıya direkt olarak tanımlanmıyor olması. 


Session ve cookie arasındaki fark
Bunu şöyle açıklayayım; bir çerez tanımladığımızda bu çerezin adı ve değeri tarayıcıya açıkca gönderilir ve bu değer istenilen süre boyunca tarayıcıda açık bir şekilde saklanır.
Sessionda ise kaydedilen değer ve değerin adı tarayıcıya gönderilmez. Onun yerine PHPSESSID adında içinde uzun bir session id değeri bulunan bir çerez tanımlanır. Ve bizim oluşturduğumuz sessionlar sunucuda saklanır ve girenlerin gönderdiği PHPSESSID kimliğine göre kime ait oldukları bulunur ve yeniden düzenlenir.
Bu olayı daha iyi anlamanız için kredi kartı örneğini vereyim: Session olayı aynı kredi kartı kullanımı gibidir. Banka size bir kart verir bu kartın içinde size özel bir anahtar kod yer alır. Ama para ve bilgiler bankada saklanır.
Siz bilgilerinize ve paralarınıza ulaşmak için kartı kullanırsınız. Sessionda size direkt olarak bilgileri vermek yerine bir PHPSESSID adında değer verir ve o değer üzerinden size ait olan verileri okur ve düzenler.


Session nerelerde kullanılabilir
Oturumun kapanmasıyla silinmesi ve tekniği nedeniyle session verileri daha çok kullanıcılarınızın sitenize giriş yaptığında onları tarayıcıyı kapatana kadar giriş yapmış şekilde tutmanıza ve bazı yerlerde sanal sepet uygulamarını gerçekleştirmenizde kullanılır.

Session oluşturma
Başta da dediğim gibi sessionları tek bir $_SESSION global dizisi üzerinden okuyup, oluşturup, silebiliyoruz. Tek önemli mevzu session kullanımına ya da oluşturulmasına başlamadan önce bir kere her sayfanın en başında session_start() fonksiyonunu yazmalıyız, bu fonksiyon session olayını kullanıma hazırlar ve olmazsa olmazdır.

Bazı sunucularda session kullanımı otomatik olarak hep açıktır, açık olan sunucularda session_start() yazmaya çalışırsanız hata verir. Bu durumda bu fonksiyonu kullanmaya gerek yoktur.

PHP Kod:
session_start();
$_SESSION['mesaj'] = 'Selam dünya!'

Yukarıda ilk önce session kullanımını başlattık ve ardından aynı bir dizi tanımlarmış gibi $_SESSION global dizisine mesaj anahtarına Selam dünya! değerini verdik. Yani mesaj adında bir session oluşturduk ve değerini Selam dünya! yaptık.
Bu oluşturduğumuz değer giren kişinin tarayıcısı kapatılmadığı sürece gezdiği her sayfaya tekrar geri gönderilecek ve bir önceki sayfada yaptığı işlemleri, kullanıcı adı ya da şifre gibi verileri bu şekilde yeniden hatırlanmasını sağlayacak.
Mesela session ile bir sayfada giren kişinin adını belirtmesini isteyip tüm sayfalarda onun bu adını hatırlatabilirim.

Session dizi (array) atama
Sessionlara yazı, sayı gibi değerler atadığımız gibi aynı zamanda dizi (array) da atayabiliriz. Bunu yapmak için sıradan bir dizi tanımlıyormuş gibi davranman yeterli.

Session dizi örneği:

PHP Kod:
session_start();
$_SESSION['uyeler'] = array('Musa''Hakan''Orhan'); 

Bu şekilde sessionların içerisinde dizi verileride taşıyabiliriz. Ve başka sayfalarda çağırdığımızda aynen dizi şeklinde kullanmaya devam edebiliriz.

Session silme
Daha öncelerde de bahsettiğimiz gibi yine burada da session silme işleminde de unset() fonksiyonunu kullanıyoruz.

PHP Kod:
session_start();
$_SESSION['gezegen'] = 'dünya';
unset(
$_SESSION['gezegen']); 

Yukarıda önce bir session oluşturduk ve hemen ardından da onu sildik.

Tüm sessionları silmek
Bu işlem için de session_destroy() fonksiyonunu kullanacağız. Bu fonksiyon tanımlanmış tüm sessionları yok eder.

PHP Kod:
session_start();
session_destroy(); 

Session var mı diye kontrol etmek
Yine diğer çalışmalarda varlığını kontrol etmekte kullandığımız isset() fonksiyonunu kullanacağız. Bu fonksiyon eğer içine yazdığımız session varsa olumlu yoksa olumsuz döner.

PHP Kod:
session_start();
echo isset(
$_SESSION['deneme']); 

Session kullanımı hakkında bir örnek
Hemen anlattıklarımızı pekiştirip pratik yapmak üzere basit bir örnek gösterelim;

Öncelikle ilk.php adında bir php dosyası oluşturalım ve içinde bir session oluşturup bir başka php sayfasında o veriyi okutmayı deneyelim.

ilk.php:
PHP Kod:
<?php
session_start
();
$_SESSION['isim'] = 'Musa';
 
echo 
'Sessionumuzu oluşturduk.';
?>

Bu sayfayı oluşturup çalıştırdıktan sonra 2. php sayfamızıda yapalım. Bunun adıda son.php olsun.

son.php:
PHP Kod:
<?php
session_start
();
 
echo 
'Daha önceden kaydedilmiş isim: ' $_SESSION['isim'];
?>

lk.php yi ziyaret ettikten sonra bu sayfaya geldiğimizde ekranda Daha önceden kaydedilmiş isim: Musa yazacaktır. Eğer ilk.php ye uğramadan yani sessionumuzu oluşturmadan son.php ye girmeye çalışırsak böyle bir session oluşturulmadığı için kod hata verecektir.

PHP COOKIE
Girilen sitelerin tarayıcılar(browserlar) üzerinde bıraktığı izlere cookie, Türkçesiyle de çerez denir. Bu izler siteye tekrar ziyaret edildiğinde yeniden gönderilerek bazı şeylerin yeniden hatırlanmasını sağlar.
Mesela giriş formlarında kullanıcının şifresini ve kullanıcı adını cookieler sayesinde tarayıcıya kaydederek bir sonraki gelişinde bilgilerini yeniden girmek zorunda kalmadan direkt giriş yapabilir.
Temel olarak kullanıcı bilgilerini hatırlanmasında kullanılan çerezleri hayal gücünüzün el verdiği kadar bir çok alanda da kullanmak mümkün. 

Cookie oluşturma

PHP’de cookie oluşturma işini bir setcookie() fonksiyonu ile yapıyoruz. Fonksiyonda tarayıcıya gönderilecek ve saklanacak olan değerin anahtarını ve içeriğini belirttiğimiz gibi bir de ne kadar süre tarayıcıda saklanacağınıda belirtiyoruz.

PHP Kod:
    setcookie("çerezim""selam dünya"); 

Yukarıdaki örnekte çerezim adında bir cookie oluşturduk ve değerinide selam dünya yaptık. Ve 3. parametre olarak hiç bir şey girmediğimiz için varsayılan olarak tarayıcı kapatıldığında çerez silinecek.

Eğer çerezin bizim istediğimiz bir gelecek tarihte silinmesini istiyorsakta 3. parametreyi devreye sokacağız. İşte bunun içinde bir örnek:

PHP Kod:
setcookie("çerezim""selam dünya"time() + (60*60*24)); 

Şimdi 3. olarak girdiğimiz time() + (60*60*24) bu parametre şu anki zamana saniye cinsinden 60*60*24 tam olarak 24 saat yani 1 gün eklemiş olduk.

Bu oluşturduğumuz çerezin son kullanma tarihi şuandan itibaren + 24 saat sonra demek oluyor. 1 gün sonrasında bu çerez siteye girildiğinde gönderilmiyor olacak.

Cookie silme
Oluşturduğumuz bir çerezi silmek için yine normal bir çerez tanımlarmış gibi setcookie() fonksiyonunu kullanıyoruz. Tek fark 3. son kullanma tarihi paramteremize geçmiş bir zaman giriyoruz. Bu sayede çerezin tarihi dolmuş varsayılıp hemen siliniyor. Örnek olarak bu çereze time() – 3600 diyerek 1 saat öncesini göstereceğiz ve çerez silinmiş olacak:

PHP Kod:
setcookie("çerezim""selam dünya"time() - 3600); 

Cookie kullanımı
Çerez kullanımı $_COOKIE dizisi üzerinden yapılır. Bu dizi otomatik olarak o sayfaya gönderilen çerezlere göre oluşur. Yukarıdaki oluşturduğumuz çereze ulaşmak için aşağıdaki kodu kullanırız, ki bu koddan ne kadar basit ve anlaşılır olduğu belli oluyor:

PHP Kod:
echo $_COOKIE['çerezim']; 

Ekranda yukarıdaki örneğin devamı olarak gösterdiğimiz bu örnekten ötürü selam dünya yazar.

Cookie değerini değiştirmek
Çerezleri oluşturmakta ve silmekte olduğu gibi değerini değiştirmekte de setcookie() fonksiyonunu kullanıyoruz. Ve oluşturmakta olduğu gibi değerini değiştirmekte aynıdır. Sadece çerez adına önceden tanımladığımız adı yazmamız yeterli. Eğer çerez yoksa oluşturulur varsa değeri değiştirilir.

PHP Kod:
setcookie("çerezim""selam dünya");
setcookie("çerezim""merhaba dünya");
 
echo 
$_COOKIE['çerezim']; 

Ekranda merhaba dünya yazar.

Cookie tanımlanmış mı diye bakmak
Tüm değişkenlerin varlığını kontrol edecek olan isset() fonksiyonu ile bir çerezin tanımlanıp tanımlanmadığını bulabiliriz. Kullanımı if ifadesi ile olacak olan bu fonksiyonun bu kullanımını henüz bu ifadeyi anlatmadığımız için örnek göstermiyorum.

PHP Kod:
    echo isset($_COOKIE['olmayan']); 

Ekranda bir şey yazmaz, FALSE değeri döner. Çünkü böyle bir çerez tanımlamadık. Tanımlanmış bir çerez olsaydı ekranda olumlu manada 1 yazardı.
Ara
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  PHP DERS 4 Pablo Escobar 0 42,327 17-11-2017, Saat: 16:50
Son Yorum: Pablo Escobar
  PHP DERS 3 Pablo Escobar 0 43,734 15-11-2017, Saat: 17:37
Son Yorum: Pablo Escobar
  PHP DERS 2 Pablo Escobar 0 43,742 15-11-2017, Saat: 17:13
Son Yorum: Pablo Escobar
  PHP DERS 1 Pablo Escobar 0 43,748 15-11-2017, Saat: 17:03
Son Yorum: Pablo Escobar

Hızlı Menü:

  Tarih: 16-12-2017, Saat: 00:32