PDA

View Full Version : استفاده از سشن در Yii



beh3000
پنج شنبه 10 مهر 1393, 17:29 عصر
سلام دوستان داشتم فریم ورک Yii رو یاد میگرفتم میخواستم بدونم سشن ها رو در Yii میشه بصورت کوکی ذخیره کرد ؟ توی codeigniter سیستم سشن هاش به این شکله که یا باید توی دیتابیس ذخیره کرد و یا خود سشن کدایگنایتر میاد با رمز کردن توی کوکی ذخیره میکنه ... این امکان توی Yii هست یا نه ؟

اگه هست چجوری باید استفاده کرد ؟

SlowCode
جمعه 11 مهر 1393, 08:52 صبح
سلام
Yii به طور پیشفرض برای سشن از کوکی استفاده میکنه، لینک آموزش (http://www.larryullman.com/2011/05/03/using-sessions-with-the-yii-framework/)

اگرهم میخوای تو دیتابیس ذخیره بشه طبق این آموزش عمل کن:
http://www.refulz.com/configuring-session-in-yii-framework-cdbhttpsession/

beh3000
سه شنبه 22 مهر 1393, 12:32 عصر
کی گفته از کوکی استفاده میکنه ؟؟!!! فقط session ID رو توی کوکی میذاره ... من میخوام مثل codeigniter همه سشن ها توی کوکی باشه , اینجوری از رم سرور کمتر استفاده میشه

MMSHFE
سه شنبه 22 مهر 1393, 14:49 عصر
دوست عزیز، اگه براتون امنیت اطلاعات مهمه، از سشن استفاده کنید وگرنه با کوکی کار کنید. اینکه CI یک کار غیر اصولی انجام داده و داده های سشن رو توی کوکی میگذاره که امکان شبیه سازی Session Fixation و... رو میده (بدون اهمیت به رمزگذاری اطلاعات چون دیگه مهم نیست در این روش)، باعث نمیشه فریمورکهای دیگه هم اشتباهش رو تکرار کنن. سشن اسمش روشه و تعریفش هم مشخصه: توی سرور ذخیره میشه. اگه میخواین بار سرور رو کم کنید، مستقیماً از کوکی استفاده کنید. سشنی که تو کوکی ذخیره کنه مقادیر رو که دیگه سشن نیست، همون کوکیه با اسم مستعار!

beh3000
سه شنبه 22 مهر 1393, 18:31 عصر
راستش یکی از دلایلی که میخواستم از کوکی استفاده کنم اینه که میخواستم روی یک سایت چندتا سرویس ارائه بدم که هر سرویس روی یک سرور جداست

مثلا سرویس ویدئو در آدرس video.domain.com روی سرور 1 و سرویس خبر در آدرس news.domain.com روی سرور 2 ... وقتی هم ک کاربر لاگین کرد باید بتونه از دوتا سرویس با همون لاگین استفاده کنه ... مثل سایت گوگل که همه حسابهای گوگل رو میتونی با یک اکانت مدیریت کنید gamil , google plus و ...

اگه راه دیگه ای هست که ممنون میشم راهنمائیم کنید

MMSHFE
سه شنبه 22 مهر 1393, 18:45 عصر
شما میتونید با فعال کردن Wildcard DNS توی کنترل پانل هاستتون و با کمک htaccess. و یکسری تنظیمات در urlManager درخواستها رو تغییر بدین. مثلاً video.domain.com/*/* به domain.com/video/*/* اشاره کنه. برای توضیحات بیشتر این لینک رو بخونید: http://www.yiiframework.com/doc/api/1.1/CUrlManager
یک راه ساده تر هم تغییر تنظیمات کوکی مربوط به سشن و معتبرکردنش در تمام Domain هست (درمورد تابع session_set_cookie_params (http://php.net/manual/en/function.session-set-cookie-params.php) و همچنین Make session valid in entire domain path with PHP تحقیق کنید).