<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.session.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'tr',
  ),
  'this' => 
  array (
    0 => 'function.session-regenerate-id.php',
    1 => 'session_regenerate_id',
    2 => 'Ge&ccedil;erli oturum kimliğini yenisiyle değiştirir',
  ),
  'up' => 
  array (
    0 => 'ref.session.php',
    1 => 'Oturum İşlevleri',
  ),
  'prev' => 
  array (
    0 => 'function.session-name.php',
    1 => 'session_name',
  ),
  'next' => 
  array (
    0 => 'function.session-register-shutdown.php',
    1 => 'session_register_shutdown',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'tr',
    'path' => 'reference/session/functions/session-regenerate-id.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.session-regenerate-id" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">session_regenerate_id</h1>
  <p class="verinfo">(PHP 4 &gt;= 4.3.2, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">session_regenerate_id</span> &mdash; <span class="dc-title">Geçerli oturum kimliğini yenisiyle değiştirir
  </span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.session-regenerate-id-description">
  <h3 class="title">Açıklama</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>session_regenerate_id</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span> <code class="parameter">$eski_oturumu_sil</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong></span></span>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>

  <p class="para rdfs-comment">
   <span class="function"><strong>session_regenerate_id()</strong></span> işlevi geçerli oturum kimliğini
   yenisiyle değiştirirken oturum bigisini korur.
  </p>
  <p class="para">
   <a href="session.configuration.php#ini.session.use-trans-sid" class="link">session.use_trans_sid</a>
   etkin olduğunda, çıktı <span class="function"><strong>session_regenerate_id()</strong></span>
   çağrısından sonra başlatılmalıdır. Aksi takdirde, eski oturum kimliği
   kullanılır.
  </p>
  <div class="warning"><strong class="warning">Uyarı</strong>
   <p class="para">
    Şu an için, işlev Mobil veya WiFi ağları gibi dengesiz ağlarda düzgün
    çalışmamaktadır. Bu bakımdan, işlev böyle ağlarda çağrıldığında bir oturum
    kaybı yaşanabilir.
   </p>
   <p class="para">
    Eski oturum verisini değil, eski oturumun zaman damgasını hemen yok etmeli
    ve eski oturum kimliğine erişimi denetlemelisiniz. Aksi takdirde, sayfaya
    eşzamanlı erişimler tutarsız bir duruma veya oturum kaybına yol açabilir.
    Ya da, istemcinin (tarayıcı) yarış durumu yan etkisi nedeniyle, gereksiz
    yere çok sayıda boş oturum kimliği çerezi oluşturmasına sebep olabilir.
    Eski oturum verisinin hemen silinmesi ayrıca oturum ele geçirme saldırısını
    algılamayı ve önlemeyi devre dışı bırakır.
   </p>
  </div>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.session-regenerate-id-parameters">
  <h3 class="title">Bağımsız Değişkenler</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">eski_oturumu_sil</code></dt>
      <dd>
       <p class="para">
        <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> ise eski oturum verisi silinir. Yarış durumlarından kaçınmak
        ve oturum ele geçirme saldırılarını algılamak/önlemek için
        <em>eski oturum hemen silinmemelidir</em>.
       </p>
      </dd>
     
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.session-regenerate-id-returnvalues">
  <h3 class="title">Dönen Değerler</h3>
  <p class="para">
   Başarı durumunda <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, başarısızlık durumunda <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> döner.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.session-regenerate-id-examples">
  <h3 class="title">Örnekler</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Örnek 1 - <span class="function"><strong>session_regenerate_id()</strong></span> örneği</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// Dikkat: Bu kod tamamen çalışır durumda değildir, sadece bir örnektir!<br /><br /></span><span style="color: #0000BB">session_start</span><span style="color: #007700">();<br /><br /></span><span style="color: #FF8000">// Zaman damgası yok edilmiş mi?<br /></span><span style="color: #007700">if (isset(</span><span style="color: #0000BB">$_SESSION</span><span style="color: #007700">[</span><span style="color: #DD0000">'destroyed'</span><span style="color: #007700">])<br />    &amp;&amp; </span><span style="color: #0000BB">$_SESSION</span><span style="color: #007700">[</span><span style="color: #DD0000">'destroyed'</span><span style="color: #007700">] &lt; </span><span style="color: #0000BB">time</span><span style="color: #007700">() - </span><span style="color: #0000BB">300</span><span style="color: #007700">) {<br />    </span><span style="color: #FF8000">// Normalde olmamalı. Saldırı veya kararsız ağ nedeniyle olabilir.<br />    // Bu kullanıcı oturumunun tüm kimlik kanıtlama bilgilerini sil.<br />    </span><span style="color: #0000BB">remove_all_authentication_flag_from_active_sessions</span><span style="color: #007700">(</span><span style="color: #0000BB">$_SESSION</span><span style="color: #007700">[</span><span style="color: #DD0000">'userid'</span><span style="color: #007700">]);<br />    throw(new </span><span style="color: #0000BB">DestroyedSessionAccessException</span><span style="color: #007700">);<br />}<br /><br /></span><span style="color: #0000BB">$old_sessionid </span><span style="color: #007700">= </span><span style="color: #0000BB">session_id</span><span style="color: #007700">();<br /><br /></span><span style="color: #FF8000">// Silinme zamanı damgasını tanımla<br /></span><span style="color: #0000BB">$_SESSION</span><span style="color: #007700">[</span><span style="color: #DD0000">'destroyed'</span><span style="color: #007700">] = </span><span style="color: #0000BB">time</span><span style="color: #007700">();<br /><br /></span><span style="color: #FF8000">// session_regenerate_id() eski oturum verisini kaydeder<br />// session_regenerate_id() basitçe çağrılırsa oturum kaybı oluşabilir, vs.<br />// Sonraki örneğe bakın<br /></span><span style="color: #0000BB">session_regenerate_id</span><span style="color: #007700">();<br /><br /></span><span style="color: #FF8000">// Yeni oturumun silinme zamanı damgasına ihtiyacı yok<br /></span><span style="color: #007700">unset(</span><span style="color: #0000BB">$_SESSION</span><span style="color: #007700">[</span><span style="color: #DD0000">'destroyed'</span><span style="color: #007700">]);<br /><br /></span><span style="color: #0000BB">$new_sessionid </span><span style="color: #007700">= </span><span style="color: #0000BB">session_id</span><span style="color: #007700">();<br /><br />echo </span><span style="color: #DD0000">"Eski oturum: </span><span style="color: #0000BB">$old_sessionid</span><span style="color: #DD0000">&lt;br /&gt;"</span><span style="color: #007700">;<br />echo </span><span style="color: #DD0000">"Yeni oturum: </span><span style="color: #0000BB">$new_sessionid</span><span style="color: #DD0000">&lt;br /&gt;"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$_SESSION</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
  <p class="para">
   Geçerli oturum modülü tutarsız ağda iyi çalışmaz. İşlevin oturumu
   kaybetmesinden kaçınmak için oturum kimliği yönetilmelidir.
  </p>
  <p class="para">
   <div class="example" id="example-2">
    <p><strong>Örnek 2 - <span class="function"><strong>session_regenerate_id()</strong></span> ile oturum kaybını önlemek</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// Dikkat: Bu kod tamamen çalışır durumda değildir, sadece bir örnektir!<br /><br />// my_session_start() ve my_session_regenerate_id() tutarsız ağda<br />// oturum kaybını önler. Ek olarak bu kod, çalınan oturumun saldırganlar<br />// tarafından suistimal edilmesini engelleyebilir.<br /><br /></span><span style="color: #007700">function </span><span style="color: #0000BB">my_session_start</span><span style="color: #007700">() {<br />    </span><span style="color: #0000BB">session_start</span><span style="color: #007700">();<br />    if (isset(</span><span style="color: #0000BB">$_SESSION</span><span style="color: #007700">[</span><span style="color: #DD0000">'destroyed'</span><span style="color: #007700">])) {<br />       if (</span><span style="color: #0000BB">$_SESSION</span><span style="color: #007700">[</span><span style="color: #DD0000">'destroyed'</span><span style="color: #007700">] &lt; </span><span style="color: #0000BB">time</span><span style="color: #007700">()-</span><span style="color: #0000BB">300</span><span style="color: #007700">) {<br />           </span><span style="color: #FF8000">// Normalde olmamalı. Saldırı veya kararsız ağ nedeniyle olabilir.<br />           // Bu kullanıcı oturumunun tüm kimlik kanıtlama bilgilerini sil.<br />           </span><span style="color: #0000BB">remove_all_authentication_flag_from_active_sessions</span><span style="color: #007700">(</span><span style="color: #0000BB">$_SESSION</span><span style="color: #007700">[</span><span style="color: #DD0000">'userid'</span><span style="color: #007700">]);<br />           throw(new </span><span style="color: #0000BB">DestroyedSessionAccessException</span><span style="color: #007700">);<br />       }<br />       if (isset(</span><span style="color: #0000BB">$_SESSION</span><span style="color: #007700">[</span><span style="color: #DD0000">'new_session_id'</span><span style="color: #007700">])) {<br />           </span><span style="color: #FF8000">// Süre henüz dolmadı. Kararsız ağda çerez kaybı olabilirdi.<br />           // Uygun oturum kimliği çerezini yeniden tanımlamayı dene.<br />           // Dikkat: Kimlik kanıtlama bilgilerini silmek için<br />           // oturum kimliğini yeniden atamaya çalışma!<br />           </span><span style="color: #0000BB">session_commit</span><span style="color: #007700">();<br />           </span><span style="color: #0000BB">session_id</span><span style="color: #007700">(</span><span style="color: #0000BB">$_SESSION</span><span style="color: #007700">[</span><span style="color: #DD0000">'new_session_id'</span><span style="color: #007700">]);<br />           </span><span style="color: #FF8000">// Yeni oturum kimliği etkinleşmeli<br />           </span><span style="color: #0000BB">session_start</span><span style="color: #007700">();<br />           return;<br />       }<br />   }<br />}<br /><br />function </span><span style="color: #0000BB">my_session_regenerate_id</span><span style="color: #007700">() {<br />    </span><span style="color: #FF8000">// Tutarsız ağdan dolayı oturum kimliği atanamadığında<br />    // doğru oturum kimliğini tanımlamak için yeni oturum kimliği gerekir.<br />    </span><span style="color: #0000BB">$new_session_id </span><span style="color: #007700">= </span><span style="color: #0000BB">session_create_id</span><span style="color: #007700">();<br />    </span><span style="color: #0000BB">$_SESSION</span><span style="color: #007700">[</span><span style="color: #DD0000">'new_session_id'</span><span style="color: #007700">] = </span><span style="color: #0000BB">$new_session_id</span><span style="color: #007700">;<br /><br />    </span><span style="color: #FF8000">// Silinme zamanı damgasını tanımla<br />    </span><span style="color: #0000BB">$_SESSION</span><span style="color: #007700">[</span><span style="color: #DD0000">'destroyed'</span><span style="color: #007700">] = </span><span style="color: #0000BB">time</span><span style="color: #007700">();<br /><br />    </span><span style="color: #FF8000">// geçerli oturuma yaz ve kapat;<br />    </span><span style="color: #0000BB">session_commit</span><span style="color: #007700">();<br /><br />    </span><span style="color: #FF8000">// Oturumu yeni oturum kimliği ile başlat<br />    </span><span style="color: #0000BB">session_id</span><span style="color: #007700">(</span><span style="color: #0000BB">$new_session_id</span><span style="color: #007700">);<br />    </span><span style="color: #0000BB">ini_set</span><span style="color: #007700">(</span><span style="color: #DD0000">'session.use_strict_mode'</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">);<br />    </span><span style="color: #0000BB">session_start</span><span style="color: #007700">();<br />    </span><span style="color: #0000BB">ini_set</span><span style="color: #007700">(</span><span style="color: #DD0000">'session.use_strict_mode'</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /><br />    </span><span style="color: #FF8000">// Yeni oturumun bunlara ihtiyacı yok<br />    </span><span style="color: #007700">unset(</span><span style="color: #0000BB">$_SESSION</span><span style="color: #007700">[</span><span style="color: #DD0000">'destroyed'</span><span style="color: #007700">]);<br />    unset(</span><span style="color: #0000BB">$_SESSION</span><span style="color: #007700">[</span><span style="color: #DD0000">'new_session_id'</span><span style="color: #007700">]);<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.session-regenerate-id-seealso">
  <h3 class="title">Ayrıca Bakınız</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.session-id.php" class="function" rel="rdfs-seeAlso">session_id()</a> - Ge&ccedil;erli oturum kimliğini d&ouml;nd&uuml;r&uuml;r ve/veya tanımlar</span></li>
    <li><span class="function"><a href="function.session-create-id.php" class="function" rel="rdfs-seeAlso">session_create_id()</a> - Yeni bir oturum kimliği oluşturur</span></li>
    <li><span class="function"><a href="function.session-start.php" class="function" rel="rdfs-seeAlso">session_start()</a> - Yeni bir oturum başlatır veya eskisini yeniden devreye sokar</span></li>
    <li><span class="function"><a href="function.session-destroy.php" class="function" rel="rdfs-seeAlso">session_destroy()</a> - Bir oturumla ilişkilendirilmiş t&uuml;m veriyi yokeder</span></li>
    <li><span class="function"><a href="function.session-reset.php" class="function" rel="rdfs-seeAlso">session_reset()</a> - Oturum dizisini &ouml;zg&uuml;n değerlerle yeniden ilklendirir</span></li>
    <li><span class="function"><a href="function.session-name.php" class="function" rel="rdfs-seeAlso">session_name()</a> - Ge&ccedil;erli oturum ismini d&ouml;nd&uuml;r&uuml;r ve/veya tanımlar</span></li>
   </ul>
  </p>
 </div>


</div><?php manual_footer($setup); ?>