ارسالها: 448
موضوعها: 206
تاریخ عضویت: خرداد 1394
اعتبار:
0
تشکرها: 154
16 بار تشکر شده در 14 پست
سلام و خسته نباشید
یه سوال خیلی وقته که ذهنمو درگیر کرده.
من تازگی ها بیش از حد از سشن ها استفاده میکنم.
حالا خواستم ببینم این کار ایراد داره یا نه.
سشن ها امنیت بالایی دارن به همین خاطر.
اطلاعات مهم رو تو سشن ها نگه میدارم
مرسی
ارسالها: 3,701
موضوعها: 140
تاریخ عضویت: اردیبهشت 1394
اعتبار:
134
تشکرها: 195
3447 بار تشکر شده در 2120 پست
منظورتون از بیش از حد چیه؟ چه چیزهایی رو توی سشن میگذارین؟
ارسالها: 448
موضوعها: 206
تاریخ عضویت: خرداد 1394
اعتبار:
0
تشکرها: 154
16 بار تشکر شده در 14 پست
سلام
ی پروژه ی آموزشی مینویسم که تو اون.
clas_id , user_id , pay_id ,page
رو توی سشن میزارم و میخوام کاربر به اونا دسترسی نداشته باشه و فقط خودم در سمت سرور بتونم از اونا خبر داشته باشم.
هر کدوم از متغیر های بالا عدد هستند مثلا clas_id یک عدد هستش مثل 14
فقط page یک متن 100 کاراکتری هستش.
مگه سشن هم مثل سایر متغیر ها نیستش.
و سوال دیگه که میخوام بپرسم
با چ متغیری میشه زمان سشن هارو افزایش داد؟
مرسی
ارسالها: 3,701
موضوعها: 140
تاریخ عضویت: اردیبهشت 1394
اعتبار:
134
تشکرها: 195
3447 بار تشکر شده در 2120 پست
سشن هم مثل متغیر عادیه. فقط تا وقتی session_start رو صدا نزدین، توی RAM نیست و توی دیسک ذخیره میشه. این چیزایی که دارین ذخیره میکنید، موارد زیادی نیستن.
باید طول عمر کوکی سشن رو افزایش بدین. توی تنظیمات PHP دنبال session.cookie_lifetime بگردین.
ارسالها: 448
موضوعها: 206
تاریخ عضویت: خرداد 1394
اعتبار:
0
تشکرها: 154
16 بار تشکر شده در 14 پست
آیا برای افزایش طول عمر سشن تابعی وجود داره.
خیلی ممنون
ارسالها: 3,701
موضوعها: 140
تاریخ عضویت: اردیبهشت 1394
اعتبار:
134
تشکرها: 195
3447 بار تشکر شده در 2120 پست
نه چیز خاصی نیست نگران نباشین. خیلی از سایتها برای ثبت نام چند مرحله ای از این روش استفاده میکنن. یک راه دیگه، ایجاد یک جدول برای ثبت نامهای موقت توی دیتابیسه. هرچی کاربر وارد میکنه توی رکوردش ثبت کنید و فقط شماره رکورد جدول موقت رو توی سشن بگذارین. وقتی ثبت نام کامل شد به جدول اصلی منتقل کنید. یه فیلد برای زمان هم بگذارین تا با کمک اون، هر ثبت نامی که از مدت مشخصی بیشتر طول کشید و به سرانجام نرسید رو از جدول موقت حذف کنید.
ارسالها: 448
موضوعها: 206
تاریخ عضویت: خرداد 1394
اعتبار:
0
تشکرها: 154
16 بار تشکر شده در 14 پست
سلام و خسته نباشید به دوستان عزیز
ی سوالی واسم پبش اومده.
آیا سشن همان کوکی است؟
آخه تو ی سایتی خوندم که اگه کاربر کوکی رو توی مرورگر غیر فعال کنه دیگه کسی نمیتونه کوچی ایجاد کنه و به اون دسترسی داشته باشه؟
حالا خواستم ببینم چیکار کنم که سشن به کوکی دسترسی نداشته باشه؟
مرسی
ارسالها: 3,701
موضوعها: 140
تاریخ عضویت: اردیبهشت 1394
اعتبار:
134
تشکرها: 195
3447 بار تشکر شده در 2120 پست
کوکی همون سشن نیست. کوکی سمت کلاینته و سشن سمت سرور ولی سشن برای اینکه درست کار کنه، باید Session ID توی سیستم کلاینت موجود باشه و توی هر درخواست برای سرور ارسال بشه (به اسم PHPSESSID). اگه کاربر کوکی رو غیرفعال کنه، معمولاً کوکی بعد از بسته شدن مرورگر از بین میره و معناش این نیست که اصلاً کوکی ساخته نمیشه ولی اگه کلاً ساخته نشه هم درصورتی که توی تنظیمات PHP گزینه trans_sid فعال باشه (پیشفرض)، موقعی که لینکی ساخته میشه بطور خودکار PHPSESSID به Query String اضافه میشه و اگه فرم باشه، یه عنصر مخفی توی فرم با نام PHPSESSID و با مقدار Session ID اضافه میشه و اگه این گزینه توی تنظیمات غیرفعال باشه، باید خودتون زحمت این کار رو بکشین. بهرحال وجود Session ID برای کارکرد صحیح سشن لازمه چون باید سرور بفهمه از بین چندین فایل سشن که داره، کدوم یکی متعلق به این کاربری هست که داره درخواست میده.
معمولاً مسیر ذخیره سازی سشن tmp/ هست ولی میتونید با تابعی که گفتین، مسیرش رو عوض کنید. باید مسیر فیزیکی بدین نه نشانی اینترنتی (URL) یعنی گزینه دومی که نوشتین درسته. البته مسیر شامل اسم کاربرتون هم هست (معمولاً همونی که توی کنترل پانل هاست باهاش لاگین میکنید). برای مثال:
home/azarsang/session/
که البته باید مجوز نوشتن رو به این پوشه بدین و ترجیحاً همونطور که توی مثال بالا گفتم، توی پوشه public_html نگذارین تا دسترسی Global بهش کسی ازطریق وب نداشته باشه.
ارسالها: 3,701
موضوعها: 140
تاریخ عضویت: اردیبهشت 1394
اعتبار:
134
تشکرها: 195
3447 بار تشکر شده در 2120 پست
بهتره توی php.ini تغییر رو ایجاد کنید. ضمناً برا ی اینکه کار کنه هم باید مسیر ذخیره سازی سشن رو قبل از صدا زدن session_start اصلاح کنید.