काफी सरल कोड बचाया जा नहीं लग रहे हैं:सत्र चर
<?
session_start();
$_SESSION['t'.time()] = "ok";
echo "<pre>".print_r($_SESSION, 1)."</pre>";
?>
शो, उम्मीद के रूप में, 3 पेज पुनः लोड के बाद की तरह
Array
(
[t1330966834] => ok
[t1330966835] => ok
[t1330966836] => ok
)
कुछ।
के कुछ प्रतीकों बदल डालते हैं:
$_SESSION[time()] = "ok";
(अब 'टी' के बिना) और मैं के बाद की तरह
Array
(
[t1330966834] => ok
[t1330966835] => ok
[t1330966836] => ok
[1330967020] => ok
[1330967021] => ok
[1330967022] => ok
[1330967023] => ok
)
कुछ पुनः लोड कुछ उम्मीद लेकिन असल में परिणाम बिल्कुल अलग है:
Array
(
[t1330966834] => ok
[t1330966835] => ok
[t1330966836] => ok
[1330967020] => ok
)
हमारे पास 3 पिछली सरणी कोशिकाएं विज्ञापन हैं और केवल एक 'समय' सेल - कोई फर्क नहीं पड़ता कि कितने ti mes आप पेज को फिर से लोड करें। समय सही है, यह प्रत्येक सेकेंड को अलग करता है लेकिन 'टी' के बिना केवल एक सेल! इसके अलावा, मैं
$t =time();
$_SESSION[$t] = "ok";
और यहां तक कि
$t =intval(time());
$_SESSION[$t] = "ok";
की कोशिश की लेकिन यह है समय के साथ केवल एक सेल बनी हुई है।
2 अलग-अलग सर्वरों पर PHP 5.2.13 और 5.3.10 पर परीक्षण किया गया। मैं क्या गलत कर रहा हूँ?
दोनों' $ _SESSION [ 't'.time()] =' ठीक बताए प्रयास करें '; $ _SESSION [समय()] =' ok'' और देखो क्या होता है। 't' संस्करण दिखते रहते हैं और नंगे समय का संस्करण नहीं होता है, तो कुछ अजीब चल रहा है। –
मुझे इस प्रश्न का उत्तर देने के लिए PHP सत्र चर की विषमताओं के बारे में पर्याप्त जानकारी नहीं है, लेकिन जब आप 't' यह एक स्ट्रिंग इंडेक्स की बजाय एक संख्यात्मक सूचकांक बन जाता है। शायद PHP केवल सत्र चर या कुछ में एक संख्यात्मक अनुक्रमणिका संग्रहीत करता है? सुनिश्चित नहीं है, लेकिन ऐसा लगता है कि इसके साथ कुछ करने के लिए कुछ है। – Travesty3