downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Yapılandırma/Kurulum> <Oturumlar
Last updated: Fri, 06 Nov 2009

view this page in

Giriş

PHP'deki oturum desteği, belli bir veriyi sonraki erişimlerden korumak için kullanılır. Böylece daha özelleştirilmiş uygulamalar oluşturabilir ve sitenizin çekiciliğini arttırabilirsiniz.

Sitenize gelen her ziyaretçiye eşsiz bir kimlik atanır, buna oturum kimliği diyoruz. Bu kimlik istemci tarafında bir çerezde ya da doğrudan URL üzerinde saklanır.

Oturum desteği, istekler arasında korunacak, çok sayıda (sayısı size bağlı) değişkeni oturuma kaydetmenize izin verir. PHP özdevinimli olarak sizin tarafınızdan (session_start() üzerinden örtük olarak ya da session_register() üzerinden doğrudan) veya sitenize bir ziyaretçi geldiğinde karşı taraftan (session.auto_start 1 ise) istekle beraber oturuma özgü bir oturum kimliği gönderilip gönderilmediğine bakar. Gönderilmişse evvelce o oturum adına saklanmış ortam yeniden oluşturulur.

Dikkat

session.auto_start yönergesinin değeri On olduğu takdirde nesneleri oturumunuza sınıf tanımını yüklemek suretiyle koymak isterseniz bunu yapmanın tek yolu sınıf tanımını auto_prepend_file kullanarak yüklemektir. Aksi takdirde oturumunuza nesneleri koymak için nesnenizi önce serialize() ile dizgeleştirmek daha sonra unserialize() ile nesneleştirmek zorundasınız.

Oturuma kayıtlı tüm değişkenler istek bittiğinde dizgeleştirilir. Oturuma kayıtlı değişkenlerden tanımsız olanlar tanımsız olarak imlenir. Sonraki erişimlerde kullanıcı bunları tanımlamadıça oturum modülü tarafından tanımsız olarak ele alınırlar.

Uyarı

Bazı veri türlerin dizgeleştirilemediğinden oturumlarda saklanamazlar. resource türündeki değişkenler ve döngüsel gönderimli nesneler (yani kendisini bir gönderimle başka bir nesneye aktaran nesneler) bunlardandır.

Bilginize: Oturum İşlemleri PHP 4.0.0'da eklenmiştir.

Bilginize: Oturumlarla çalışırken, bir değişken session_register() ile oturuma kaydedilinceye kadar veya $_SESSION süper küresel dizisine yeni bir anahtar ekleninceye kadar bir oturum kaydının oluşturulmayacağına dikkat ediniz. Oturumu session_start() ile başlatsanız bile bu durum değişmez.

Bilginize: PHP 5.2.2'de devreye giren ve PHP 5.3.0 sürümünde kaldırılan henüz belgelenmemiş bir özellik sayesinde oturum dosyaları "/tmp" dizininde ("/tmp" izin verilen dosya yollarına doğrudan eklenmiş olmasa da open_basedir) ile etkin kılınmasa da) saklanabilmekteydi.



add a note add a note User Contributed Notes
Giriş
ivenms at ivenms dot com
23-Mar-2009 08:08
Here is a sample code which can be used to create logged sessions:

Code for differentiating Guest and Logged members:
<?php
// Starting the session
session_start();

if(isset(
$_SESSION['user']))
    {
       
// Code for Logged members

        // Identifying the user
       
$user = $_SESSION['user'];
       
       
// Information for the user.
   
}
else
    {
       
// Code to show Guests
   
   
}
?>

Code for Logging a User:
<?php
//Username Stored for logging
define("USER", "user");

// Password Stored
define("PASS", "123456");

// Normal user section - Not logged ------
       
if(isset($_REQUEST['username']) && isset($_REQUEST['password']))
            {
               
// Section for logging process -----------
               
$user = trim($_REQUEST['username']);
               
$pass = trim($_REQUEST['password']);
                if(
$user == USER && $pass == PASS)
                    {
                       
// Successful login ------------------
                       
                        // Setting Session
                       
$_SESSION['user'] = USER;
                       
                       
// Redirecting to the logged page.
                       
header("Location: index.php");
                    }
                else
                    {
                       
// Wrong username or Password. Show error here.
                       
                   
}
               
            }
?>
User can be logged successfully with username as "user" and password as 123456.

[NOTE BY danbrown AT php DOT net: Contains a bugfix by (pprem AT pprem DOT net) on 26-APR-2009 with the following note: Dont' write if($user == USER && $pass = PASS).]

Yapılandırma/Kurulum> <Oturumlar
Last updated: Fri, 06 Nov 2009
 
 
show source | credits | sitemap | contact | advertising | mirror sites