• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
استفاده از دو سشن مختلف در یک درخواست
#1
الان من این کد رو اجرا میکنم:
کد پی‌اچ‌پی:
<?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 رو پرینت میکنه میبینید که اونطور که میخواستیم و انتظار میرفته عمل نمیکنه.
بنظرتون چرا و راه حلش چیه؟
  پاسخ
تشکر شده توسط :
#2
خب چرا به صورت namespace استفاده نمی کنی؟
یه کلاس واسط بنویس که اطلاعات رو ذخیره کنه ولی اطلاعات رو داخل یک آرایه از سشن قرار بده
یه نگه به اینجا و مثالهاش بندازم شاید منظورم رو متوجه بشی
http://framework.zend.com/manual/en/zend...usage.html
  پاسخ
تشکر شده توسط :
#3
در اصل برای پروژهء خودم اینو میخواستم که اگر کسی از پروژهء من در برنامهء خودش استفاده کرد سشن پروژهء من مستقل باشه و با مال خودش تداخل نکنه.
  پاسخ
تشکر شده توسط :
#4
پس پیشنهاد من اینه که از همون نیم اسپیس استفاده کنید.
یعنی اینکه فقط از یک ایندکس سشن استفاده کنید و اون هم قابل تنظیم باشه
کد پی‌اچ‌پی:
define('SESSION_KEY',"MY_SESSION_KEY");

$SESSION[SESSION_KEY]=array();
$SESSION[SESSION_KEY]['mykey']="myvalue"
  پاسخ
تشکر شده توسط : Reza
#5
شاید روش مناسبی باشه.
اما پارامترهای دیگه چی؟
مثلا طرف کوکی سشن خودش رو یجور تنظیم میکنه من شاید یجور دیگه تنظیم کنم. منظورم از نظر طول عمر و ایناست.
همینطور تنظیمات دیگه هم مثل اینکه سشن ها کجا ذخیره بشن و فایلهای سشن چه طول عمری داشته باشن.
اگر فایل سشن و کوکی ما کاملا مستقل نباشه بعید میدونم بشه تنظیمات مستقل برای همهء موارد داشت.
ببین من چقدر تنظیمات انجام دادم توی پروژهء خودم:
کد پی‌اچ‌پی:
$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'); 
  پاسخ
تشکر شده توسط :
#6
منم همین فکر رو می کنم Big Grin
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان