بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

استفاده از session در صورت ست نبودن cookie

مدیریت گفتگو
par4301 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام به همه، روزتون بخیر

من این نوشته ها در stack overflow (این  و این) و این پاسخ در همین uncox خودمون را دیدم، و واقعیت این که نمی خواهم از دستور زیر استفاده کنم و SESSIONID را به صورت GET در URL ذخیره کنم، چون به نظرم امنیت نداره و خب این تغییرات مال php.ini است و خب در سرور اشتراکی که به این فایل دسترسی نداریم، درسته؟ اگه اشتباه می کنم، بگین :) 

 ini_set("session.use_only_cookies", "0"); 
ini_set("session.use_trans_sid", 1);

ولی یک سئوالی هست که پاسخش را نفهمیدم،  این که اگر من به عنوان توسعه دهنده وب یک عالمه روی $_SESSION حساب باز کنم و برای متغیرهای اشتراکی بین فایل ها ازش استفاده کنم، مخصوصاً چون یک عالمه روی امنیت ذخیره سازی اطلاعات در طرف سرور حساب کردم، بعد کاربر بیاد و کوکی اش را غیر فعال کنه، چی میشه؟

سایت من برای اون کاربر خاص درست کار نمی کنه مثلاً؟

و راه حلش چیه؟ مثلاً بی خیال $_SESSION بشم و همه اش را در دیتابیس نگه دارم؟

این کار راه حل منطقی ای است به نظرتون؟ یا بی خیال کاربرهایی بشم که کوکی را غیر فعال کردن :-|

نظرات

Mr Mehdi 10 سال پیش
این کدهایی که گفتید رو توی فایل index ذخیره و اجرا کنید کار می‌کنه. یعنی کد php هستند. در مورد سوال آخرتون باید بگم بله کار نمی‌کنه اما یک پلاگین دیده بودم به اسم Ever Cookie که احتمال می‌دم برای این مورد شما مناسب هست. بگردید دنبالش.
par4301 10 سال پیش
ممنونم از پاسختون، هدف من فعال بودن کوکی به هر قیمتی نیست، می خواستم بدونم اگر کاربر غیر فعال کرده باشه، آیا بهتر نیست از یک روش دیگر استفاده کنم یا با توجه به این که تعداد کاربرهایی که کوکی را غیر فعال می کنند کم است، بی خیال بشم و از $_SESSION برای ذخیره سازی متغیرها بهره ببرم؟
Mr Mehdi 10 سال پیش
فکر نمی‌کنم نیازی باشه، چون احتمال اینکه کاربری کوکی رو غیرفعال کنه خیلی خیلی پایینه و به نظرم بهتره بیشتر به مسائل مهمتر فکر کنید و زیاد درگیر جزئیات نشید
Criss 10 سال پیش
اتفاقا خود استاد هم اشاره کردند که روش حرفه ایی تر ذخیره سشن ها در دیتابیس هست و نه بصورت فایل ، من الان به این بخش رسیدم و چون قبلا سوالتون رو دیده بودم < چون در حال مطالعه این فصل بودم گفتم یک نگاهی به این تاپیک بندازم چون مرتبط به سشن بود ! ، در مورد سشن ها یک نکته دیگه هم وجود داره که timeOut دارند و بعد از مدتی اطلاعاتشون پاک میشه ، که دلیلش این هست که روی حافظه و Ram در سرور قرار میگیرند
par4301 10 سال پیش
بله، خیلی ممنونم که به این سئوال توجه کردین :) خب دیدم که استاد گفتند که در دیتابیس باشه حرفه ای تره، فقط دنبال این بودم که اکثریت چی کار می کنن؟ در سشن نگه میدارن یا دیتابیس؟ بالاتر یکی از دوستان گفتن که خب حالا مهم نیست و بریزیم در سشن، ولی به نظرم برای کارهایی که آدم فکر می کنه خیلی در سایت تاثیر منفی میذاره (اگر کاربر کوکی را غیرفعال کرده باشه) خب، منطقی تر استفاده از دیتابیس است ظاهرا...
Mr Mehdi 10 سال پیش
وقتی شما سشن رو توی دیتابیس ذخیره‌سازی کنید فقط محل ذخیره‌شدن رو تغییر دادید. این قضیه که کاربر کوکی رو غیرفعال کنه حتی وقتی سشن رو توی دیتابیس ذخیره کنید هم وجود داره و ربطی به اون نداره. چون کوکی هست که آدرس مشخصات سشن رو نگه‌داری می‌کنه. نمونه‌اش وبلاگ خودم هست (می‌تونید امتحان کنید در بخش کامنت‌ها) سشن روی دیتابیس ذخیره می‌شه اما اگه کوکی رو غیرفعال کنید دیگه کار‌ نمی‌کنه.
Criss 10 سال پیش
حالا سوالی که برای من وجود داره این هست که فرض کنید قرار نیست از وبسایت استفاده کنیم ئ در این صورت مرورگری در کار نیست و قرار هست که یک وب سرویس داشته باشیم و اون رو روی گوشی های موبایل توسعه بدیم < توی این شرایط اگر بخواید از قابلیت های سشن استفاده کنیم چون مرورگر نداریم باید سشن رو توی دیتابیس ذخیره کرد < که البته من اینطوری فکر میکنم ، اما اینطور که دوستمون در پست بالا دارند اشاره میکنند باز هم در صورت غیرفعال بودن کوکی سشن در دیتابیس ذخیره نمیشه ! پس عملا در زمان استفاده از وب سرویس بدون و بدون وجود بروزر امکان استفاده از سشن نخواهد بود ! پس در نهایت باید یک فرآیند جدا و بصورت الگوریتم نویسی هم برای این موضوع باید انجام بشه ! که دیگه محدودیت هارو کمتر میکنه !
par4301 10 سال پیش
بله خب، به نظرم اگه سشن این مشکل را داره که حتماً نیاز به کوکی داره (چه در دیتابیس ذخیره بشه یا نه)، شاید بهتر است برای مواردی که نیاز به یک متغیر مشترک بین فایل ها هست، مستقیم از دیتابیس استفاده کنیم (مخصوصاً وقتی که وب سرویس است)، این طوری دیگه به سشن وابستگی نداریم :-|

پاسخ‌ها 1

Mr Mehdi 10 سال پیش

Criss عزیز، ذخیره شدن سشن ربطی به ذخیره شدن کوکی نداره. سشن طرف سرور زخیره میشه و کوکی در طرف کاربر. کاربر می‌تونه کوکی رو کنترل کنه اما سشن رو نه. وقتی شما یک سشن رو ذخیره می‌کنید توی یک کوکی اطلاعاتی از سشنی که ذخیره شده نگه‌داری می‌کنه تا بعدا ازش دوباره استفاده کنه.

وقتی کاربر کوکی رو غیرفعال می‌کنه درواقع وقتی سشن ایجاد می‌شه کوکی ایجاد شده رو حذف می‌کنه اما سشن می‌مونه. در مورد اندروید شما با مرورگر ارتباطی ندارید. پس فکر نکنم کاربر بتونه خودش کوکی رو غیرفعال کنه!

نظرات

Criss 10 سال پیش
کاملا صحیح ، این مورد رو فراموش کرده بودم که سشن برای سرور هست و کوکی برای کاربر ، حالا یک چالش هنوز برای من وجود داره < استاد میگه که : سشن ترکیبی از ای پی شما + بروزر شما + ترکیبی از اطلاعات دیگه هست ، و اینکه وقتی سشن رو تست میکردیم سشن توی فایرفکس وجود داشت ولی توی اینترنت اکسپلورر وجود نداشت ، من سر این موضوع چالش برام پیش اومده که ، برای زمانی که از وب سرویس استفاده میکنیم و اطلاعات بصورت جیسون در سمت اندروید دریافت میشه ، رفتار سشن صحیح هست ؟ و یا اینکه مثل ارتباط داشتن در فایرفکس و در اینترنت اکسپلورر ممکنه در بعضی موارد وجود نداشته باشه ؟ (البته من میتونستم این رو تست بزنم و نتیجه بگیرم ولی ترجیح دادم اینجا مکتوب بشه ، شاید بدرد سایر دوستان هم بخوره)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .