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

search for in the

Özel Oturum Eylemcisi> <- Bir değişkeni $_SESSION ile kayıt altına almak
Last updated: Fri, 13 Nov 2009

view this page in

Oturum Kimliğinin Aktarımı

Bir oturum kimliğini yaymanın iki yolu vardır:

  • Çerezler
  • URL değiştirgesi

Oturum modülü her ikisini de destekler. Çerezler en uygunudur, fakat her zaman kullanmak mümkün olmadığından ikinci bir yöntem sağlıyoruz. İkinci yöntem, oturum kimliğini doğrudan URL'nin içine gömer.

PHP bağlantıları şeffaf olarak dönüştürme yeteneğine sahiptir. PHP 4.2.0 ve sonrasını kullanmıyorsanız, bunu PHP'yi derlerken kendinizin etkin kılması gerekir. Unix altında, configure betiğine --enable-trans-sid seçeneğini vermeniz gerekir. PHP bu seçenekle derlenmiş ve çalışma anında session.use_trans_sid yönergesi etkin kılınmışsa, göreli URI'ler özdevinimli olarak oturum kimliğini içerecek şekilde değiştirilirler.

Bilginize: arg_separator.output php.ini yönergesi değiştirge ayracının değiştirilebilmesini sağlar. Tam XHTML uyumluluğu için yönergeye değer olarak &amp; belirtin.

Ayrıca, oturum başlatıldığında tanımlanan SID sabitini de kullanabilirsiniz. Eğer istemci uygun bir oturum çerezi göndermezse, SID sabiti oturum_ismi=oturum_kimliği değerini içerecektir. Aksi takdirde sabitin değeri bir boş dizge olur. Bu durumda, oturum kimliğini koşulsuz olarak URL'lerin içine gömebilirsiniz.

Aşağıdaki örnekte bir değişkenin nasıl oturum değişkeni haline getirildiği ve SID sabitiyle başka bir sayfaya nasıl bağlantı kurulduğu gösterilmiştir.

Örnek 1 - Tek bir kullanıcının sayfa erişimlerinin sayılması

<?php

session_start
();

if (empty(
$_SESSION['count'])) {
 
$_SESSION['count'] = 1;
} else {
 
$_SESSION['count']++;
}
?>

<p>
Merhaba sayın ziyaretçi, bu sayfayı <?php echo $_SESSION['count']; ?>
kere ziyaret ettiniz.
</p>

<p>
Devam etmek için, <a href="nextpage.php?<?php echo htmlspecialchars(SID);
?>">buraya tıklayınız</a>.
</p>

XSS saldırılarından kaçınmak için URL'ye SID yerleştirilirken htmlspecialchars() kullanılabilir.

SID sabitini URL'ye yukarıdaki gibi yerleştirecekseniz, PHP'yi --enable-trans-sid seçeneğiyle derlemeniz gerekmez.

Bilginize: Göreli olmayan URL'lerin harici siteleri işaret ettikleri varsayılır ve oturum kimliğinin başka bir sunucuya ifşa edilme riskine karşı SID bunlara yerleştirilmez.



add a note add a note User Contributed Notes
Oturum Kimliğinin Aktarımı
CT Thompson
17-Jul-2009 08:17
The previous user is correct, but you can get around this by starting your sessions like this:

session_start($mysession);

Or you can set up an if statement that determines if $mysession is set and whatnot...
a dot nielsen at shikadi dot net
10-Feb-2009 02:49
When you generate URLs yourself using the SID variable, it must come first in the URL parameter list.  For example, if SID expands to "mysession=123" then this does NOT work:

  file.php?var1=value&mysession=123

The SID must come first:

  file.php?mysession=123&var1=value

If the SID does not come first then session_start() does not recognise it and it creates a new session instead of loading the old one.

 
show source | credits | sitemap | contact | advertising | mirror sites