Ben PHP oturum değişkenleri ile gerçekten garip bir sorun yaşıyorum. Doğal olarak mümkün olamaz, aynı oturum içinde çift değişkenler orada olacak gibi oturum kimliği dayalı görünüyor.
Sorun sayfasından form sayfasını kendisi yeniden yükler hangi teslim edildiğinde 'tırnak' oturum değişkeni aynı kalması gerektiğidir. $ _SESSION ['Tırnak'] değişkeni tanımlı değil yalnızca ayarlanır, ne altında günlükleri görülebileceği gibi ilk iki reloads olur.
Debug kodu:
echo "\n Current session id: ".session_id();
echo "\n _SESSION['quote']: ".$_SESSION['quote'];
$_SESSION['counter'] = isset($_SESSION['counter'])? $_SESSION['counter'] +1 : 0;
echo "\n _SESSION['counter']: ".$_SESSION['counter'];
Output when page is reloaded(form submitted):
Current session id: r5i15u4s9e20ud4j6jke8ln376;
$_SESSION['quote']: ;
$_SESSION['counter']: 0;
set _SESSION['quote']: 984;
Current session id: r5i15u4s9e20ud4j6jke8ln376;
$_SESSION['quote']: ;
$_SESSION['counter']: 0;
set _SESSION['quote']: 985;
Current session id: r5i15u4s9e20ud4j6jke8ln376;
$_SESSION['quote']: 985;
$_SESSION['counter']: 1;
Current session id: r5i15u4s9e20ud4j6jke8ln376;
$_SESSION['quote']: 985;
$_SESSION['counter']: 2;
Current session id: r5i15u4s9e20ud4j6jke8ln376;
$_SESSION['quote']: 984;
$_SESSION['counter']: 1;
Current session id: r5i15u4s9e20ud4j6jke8ln376;
$_SESSION['quote']: 985;
$_SESSION['counter']: 3;
Current session id: r5i15u4s9e20ud4j6jke8ln376;
$_SESSION['quote']: 984;
$_SESSION['counter']: 2;
This problem happens with Firefox and IE. Any advice or tip would be highly appreciated. Thanks in advance.
--- EDIT --- Added echo serialize($_SESSION); as proposed.
<?php session_start();
echo "\nSerialized data at begin of page: ";
echo serialize($_SESSION);
echo "\n Current session id: ".session_id();
echo "\n _SESSION['quote']: ".$_SESSION['quote'];
$_SESSION['counter'] = isset($_SESSION['counter'])? $_SESSION['counter'] +1 : 0;
echo "\n _SESSION['counter']: ".$_SESSION['counter'];
ÇIKIŞ:
Initial loading of page:
Serialized data at begin of page: a:0:{}
Current session id: vbbpohof2jo757eaj5jrp4dv02
$_SESSION['quote']:
$_SESSION['counter']: 0
...
Serialized data at end of page: a:1:{s:7:"counter";i:0;}
Page 1. reload by form submit:
Serialized data at begin of page: a:0:{}
Current session id: vbbpohof2jo757eaj5jrp4dv02
$_SESSION['quote']:
$_SESSION['counter']: 0
...
Serialized data at end of page: a:3:{s:7:"counter";i:0;s:8:"quote";i:1023;s:9:"quotedate";s:10:"2010-11-18";}
Page 2. reload by form submit:
Serialized data at begin of page: a:1:{s:7:"counter";i:0;}
Current session id: vbbpohof2jo757eaj5jrp4dv02
$_SESSION['quote']:
$_SESSION['counter']: 1
...
Serialized data at end of page: a:3:{s:7:"counter";i:1;s:8:"quote";i:1024;s:9:"quotedate";s:10:"2010-11-18";}
Page 3. reload by form submit:
Serialized data at begin of page: a:3:{s:7:"counter";i:0;s:8:"quote";i:1023;s:9:"quotedate";s:10:"2010-11-18";}
Current session id: vbbpohof2jo757eaj5jrp4dv02
$_SESSION['quote']: 1023
$_SESSION['counter']: 1
...
Serialized data at end of page: a:3:{s:7:"counter";i:1;s:8:"quote";i:1023;s:9:"quotedate";s:10:"2010-11-18";}
Page 4. reload by form submit:
Serialized data at begin of page: a:3:{s:7:"counter";i:1;s:8:"quote";i:1024;s:9:"quotedate";s:10:"2010-11-18";}
Current session id: vbbpohof2jo757eaj5jrp4dv02
$_SESSION['quote']: 1024
$_SESSION['counter']: 2
...
Serialized data at end of page: a:3:{s:7:"counter";i:2;s:8:"quote";i:1024;s:9:"quotedate";s:10:"2010-11-18";}
Page 5. reload by form submit:
Serialized data at begin of page: a:3:{s:7:"counter";i:1;s:8:"quote";i:1023;s:9:"quotedate";s:10:"2010-11-18";}
Current session id: vbbpohof2jo757eaj5jrp4dv02
$_SESSION['quote']: 1023
$_SESSION['counter']: 2
...
Serialized data at end of page: a:3:{s:7:"counter";i:2;s:8:"quote";i:1023;s:9:"quotedate";s:10:"2010-11-18";}
Ben bu belirsiz orijinal tanımı daha benim sorunum iyi gösteriyor umuyoruz. Bunun için özür dilerim. Bu kez "iki eşzamanlı" oturum değişken diziler, böyle olabilir eğer, birbiri ardına aktif biri olarak görünüyor. Bazen diğer aktif birkaç kez ve daha sonra başka bir ...
--- EDIT ---