Hikayeler

Reklam vermek için turkmmo@gmail.com

PHP - Oturumlar

Carissa

Administrator
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye Turkmmo Discord Nitro Booster
Admin
Katılım
2 Mar 2015
Konular
59,185
Mesajlar
88,376
Online süresi
4ay 14g
Reaksiyon Skoru
14,227
Altın Konu
2,398
Başarım Puanı
1,051
TM Yaşı
11 Yıl 1 Ay 21 Gün
MmoLira
694,336
DevLira
234

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!

Bir web oturumu, bir kullanıcının bir sunucuyla bağlantı kurması ile bağlantının sonlandırılması arasındaki zaman dilimidir. Çerezlerle birlikte, oturum değişkenleri verileri bir web sitesinin çeşitli sayfalarında erişilebilir hale getirir.

Bir oturum sırasında, web sitesi kullanıcının eylemleri ve tercihleri hakkında bilgi tutar. Oturum verileri, süper küresel bir ilişkisel dizi $_SESSION içinde doldurulur.

PHP'de yeni bir oturum başlatmak için session_start() fonksiyonunu çağırmanız gerekir.

Bir Oturum Başlatma

Oturum verilerine erişimi etkinleştirmek için session_start() fonksiyonu çağrılmalıdır. session_start(), bir GET veya POST isteğiyle iletilen veya bir çerez aracılığıyla iletilen bir oturum tanımlayıcısına dayanarak bir oturum oluşturur veya geçerli oturumu sürdürür.

session_start(array $options = []): bool

Bu fonksiyon, bir oturum başarıyla başlatılmışsa true , aksi takdirde false değerini döndürür.

PHP ilk olarak o oturum için benzersiz bir tanımlayıcı oluşturur; bu tanımlayıcı 32 adet onaltılık sayıdan oluşan rastgele bir dizedir.

session_id () fonksiyonu benzersiz bir oturum kimliği ayarlar veya alır.

session_id(?string $id = null): string|false

PHP, $id parametresi verilmezse rastgele bir oturum kimliği üretecektir . Bunun yerine kendi kimliğinizi belirtebilirsiniz. İşlev, geçerli oturum için oturum kimliğini veya geçerli bir oturum yoksa boş dizeyi döndürür. Başarısızlık durumunda, false döndürür.

Örnek

Aşağıdaki örneğe bir göz atın.

PHP:
<?php 
   // Starting the session
   session_start();
   $id = session_id();
   echo "Session Id: ".$id ;
?>

Tarayıcı çıktı olarak rastgele bir dize gösterecektir.

Session Id: mi3976f8ssethe9f04vq1ag6it

Kullanıcının bilgisayarına PHPSESSID adında bir çerez otomatik olarak gönderilir ve benzersiz oturum tanımlama dizesi depolanır.

php_sessions_1.jpg

Bir oturum, sunucuda kayıtlı oturum değişkenlerinin ve değerlerinin saklandığı geçici bir dizinde bir dosya oluşturur. Bu veriler, o ziyaret sırasında sitedeki tüm sayfalar tarafından kullanılabilir olacaktır.

Geçici dosyanın konumu "php.ini" dosyasındaki "session.save_path" adlı bir ayarla belirlenir.


Oturum Değişkenlerini İşleme

Oturum değişkenleri $_SESSION[] adlı ilişkisel dizide saklanır. Bu değişkenlere bir oturumun ömrü boyunca erişilebilir.

Yeni bir oturum değişkeni oluşturmak için $_SESSION dizisine bir anahtar-değer çifti ekleyin.

$_SESSION[ "var"]=value;

Bir oturum değişkeninin değerini geri okumak için echo/print ifadelerini veya var_dump() veya print_r() fonksiyonlarını kullanabilirsiniz.

echo $_SESSION[ "var"];

Mevcut oturumdaki tüm oturum değişkenlerinin listesini elde etmek için, $_SESSION'ı dolaşmak üzere bir foreach döngüsü kullanabilirsiniz.

foreach ($_SESSION as $key=>$val)
echo $key . "=>" . $val;

Örnek

Aşağıdaki örnek bir oturum başlatır ve ardından oturum sırasında sayfa her ziyaret edildiğinde artan counter adlı bir değişkeni kaydeder.

Bir oturum değişkeninin önceden ayarlanıp ayarlanmadığını kontrol etmek için isset() fonksiyonunu kullanın.

Aşağıdaki PHP betiği ilk kez çalıştığında bir oturum başlatır ve counter adlı bir oturum değişkeni ayarlar. İstemci aynı URL'yi tekrar ziyaret ettiğinde, oturum değişkeni zaten ayarlandığı için counter artırılır.


PHP:
<?php
   session_start();
   if( isset( $_SESSION['counter'] ) ) {
      $_SESSION['counter'] += 1;
   } else {
      $_SESSION['counter'] = 1;
   }
   $msg = "Number of visits in this session: ".  $_SESSION['counter'];
?>
<?php 
   echo "$msg";
?>

Tekrarlanan ziyaretleri simüle etmek için tarayıcıyı birden çok kez yenileyin. Tarayıcı sayacı görüntüler.

Number of visits in this session: 5

Bir PHP Oturumunu Yok Etme

Bir PHP oturumu session_destroy() fonksiyonu ile yok edilebilir. Bu fonksiyon herhangi bir argümana ihtiyaç duymaz ve tek bir çağrı tüm oturum değişkenlerini yok edebilir. Tek bir oturum değişkenini yok etmek istiyorsanız, bir oturum değişkenini kaldırmak için unset() fonksiyonunu kullanabilirsiniz.

İşte tek bir değişkenin ayarını kaldırmaya yönelik bir örnek:

PHP:
<?php
   unset($_SESSION['counter']);
?>

İşte tüm oturum değişkenlerini yok edecek çağrı:

PHP:
<?php
   session_destroy();
?>

Php.ini dosyanızda session.auto_start değişkenini 1 olarak ayarlarsanız, bir kullanıcı sitenizi ziyaret ettiğinde bir oturum başlatmak için start_session() fonksiyonunu çağırmanıza gerek kalmaz.

Örnek

Aşağıdaki PHP betiği bir HTML formu oluşturur. Form verileri üç oturum değişkeni oluşturmak için kullanılır. Bir köprü metni tarayıcıyı oturum değişkenlerini geri okuyan başka bir sayfaya götürür.

HTML:
<html>
<body>
   <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
      <h3>User's ID: <input type="text" name="ID"/></h3>
      <h3>User's Name: <input type="text" name="name"/></h3>
      <h3>User Type: <input type="text" name="type"/></h3>
      <input type="submit" value="Submit" />
   </form>

   <?php
      session_start();
      if ($_SERVER["REQUEST_METHOD"] == "POST") {
         $_SESSION['ID'] = $_POST['ID'];
         $_SESSION['Name'] = $_POST['name'];
         $_SESSION['type'] = $_POST['type'];

         echo "<h2>Following Session variables Created</h2>";
         foreach ($_SESSION as $key=>$val) {
            echo "<h3>" . $key . "=>" . $val . "</h3>";
         }
         echo "<a href='test.php'><b>Click Here</b></a>";
      }
   ?>
</body>
</html>

Bu kodu "hello.php" olarak belge kök klasörüne kaydedin ve istemci tarayıcısında açın.

php_sessions_2.jpg

Gönder düğmesine basın. Tarayıcı oluşturulan oturum değişkenlerini gösterecektir.

php_sessions_3.jpg

Tarayıcı gösterilen bağlantıyı takip ederek başka bir sayfaya gider. Oturum değişkenlerini geri okur.

php_sessions_4.jpg
 

Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 0, Misafir: 1)

Geri
Üst