انجمن ایران پی اچ پی

نسخه کامل: استفاده از دو سشن مختلف در یک درخواست
شما در حال مشاهده نسخه متنی این صفحه می‌باشید. مشاهده نسخه کامل با قالب بندی مناسب.
الان من این کد رو اجرا میکنم:
کد PHP:
<?php

session_name
('sess1');
session_start();
$_SESSION['a']=1;
session_write_close();

session_name('sess2');
session_start();
$_SESSION['b']=2;
session_write_close();

session_name('sess1');
session_start();

echo 
'<pre>';
print_r($_SESSION);
echo 
'</pre>';

?>
انتظار دارم متغییرهای تعریف شده در دو سشن مجزا ایجاد بشن. ولی اینطور نیست. فایل سشن رو اگر چک کنید یک فایل مشترک برای هردو سشن ایجاد میشه و هر دو متغییر در همون ذخیره میشن. البته خود برنامه هم آرایهء _SESSION رو پرینت میکنه میبینید که اونطور که میخواستیم و انتظار میرفته عمل نمیکنه.
بنظرتون چرا و راه حلش چیه؟
خب چرا به صورت namespace استفاده نمی کنی؟
یه کلاس واسط بنویس که اطلاعات رو ذخیره کنه ولی اطلاعات رو داخل یک آرایه از سشن قرار بده
یه نگه به اینجا و مثالهاش بندازم شاید منظورم رو متوجه بشی
http://framework.zend.com/manual/en/zend...usage.html
در اصل برای پروژهء خودم اینو میخواستم که اگر کسی از پروژهء من در برنامهء خودش استفاده کرد سشن پروژهء من مستقل باشه و با مال خودش تداخل نکنه.
پس پیشنهاد من اینه که از همون نیم اسپیس استفاده کنید.
یعنی اینکه فقط از یک ایندکس سشن استفاده کنید و اون هم قابل تنظیم باشه
کد PHP:
define('SESSION_KEY',"MY_SESSION_KEY");

$SESSION[SESSION_KEY]=array();
$SESSION[SESSION_KEY]['mykey']="myvalue"
شاید روش مناسبی باشه.
اما پارامترهای دیگه چی؟
مثلا طرف کوکی سشن خودش رو یجور تنظیم میکنه من شاید یجور دیگه تنظیم کنم. منظورم از نظر طول عمر و ایناست.
همینطور تنظیمات دیگه هم مثل اینکه سشن ها کجا ذخیره بشن و فایلهای سشن چه طول عمری داشته باشن.
اگر فایل سشن و کوکی ما کاملا مستقل نباشه بعید میدونم بشه تنظیمات مستقل برای همهء موارد داشت.
ببین من چقدر تنظیمات انجام دادم توی پروژهء خودم:
کد PHP:
$old_cookie_lifetime=session_get_cookie_params();
$old_cookie_lifetime=$old_cookie_lifetime['lifetime'];
session_set_cookie_params(0);
$old_use_cookies=ini_set('session.use_cookies''1');
$old_use_only_cookies=ini_set('session.use_only_cookies''1');
$old_gc_maxlifetime=ini_set('session.gc_maxlifetime'$identify_structs['session']['gc_maxlifetime']);
$old_session_save_path=session_save_path($identify_structs['session']['save_path']);
$old_session_name=session_name('reg8log_session');
$old_session_id=session_id();
$old_httponly=ini_set("session.cookie_httponly"1);
$old_trans_sid=ini_set("session.use_trans_sid"0);
if(
$https$old_cookie_secure=ini_set('session.cookie_secure''on'); 
منم همین فکر رو می کنم Big Grin
لینک مرجع