PDA

View Full Version : سوال: يه مشكل توي session



saba_rgh
سه شنبه 13 مرداد 1388, 10:44 صبح
باسلام
من توي برنامم از session استفاده كردم ولي وسط كارم يه دفعه expire شده و ازم username و password ميخواد؟ ميشه راهنمائيم كنيد كه چه طوري ميشه زمان expire شدن session را بيشتر كرد؟
ممنون

click2ir
سه شنبه 13 مرداد 1388, 10:55 صبح
شما می تونید با استفاده از شبه دستور session.cookie_lifetime مقداری رو به ثانیه برای پایان عمر جلستون تعیین کنید
به صورت پیشفرض این شبه دستور مقدار صفر رو دارده
البته اگر شما از

// Finally, destroy the session.
session_destroy();استفاده کرده باشید بدون توجه به زمان جلسه شما به پایان خواهد رسید

برای مقدار دهی به این شبه دستور باید به صورت زیر عمل کنید

ini_set('session.cookie_lifetime', 500);

که من مقدار 500 ثانیه رو برای این در نظر گرفتم
امید وارم مفید بوده باشه

saba_rgh
سه شنبه 13 مرداد 1388, 12:26 عصر
شما می تونید با استفاده از شبه دستور session.cookie_lifetime مقداری رو به ثانیه برای پایان عمر جلستون تعیین کنید
به صورت پیشفرض این شبه دستور مقدار صفر رو دارده
البته اگر شما از

// Finally, destroy the session.
session_destroy();استفاده کرده باشید بدون توجه به زمان جلسه شما به پایان خواهد رسید

برای مقدار دهی به این شبه دستور باید به صورت زیر عمل کنید

ini_set('session.cookie_lifetime', 500);

که من مقدار 500 ثانیه رو برای این در نظر گرفتم
امید وارم مفید بوده باشه
ممنون از راهنمائيتون
ولي من از يك صفحه اي login ميكنم و وارد صفحه ديگه ميشم ميخوام توي همه صفحاتم صدق كه.كد شما هم جواب نداد:ناراحت:

click2ir
سه شنبه 13 مرداد 1388, 23:14 عصر
فکر کنم
strat_session () باید در تمام صفحاتت قبل از همه کد ها باید قرار بگیره:لبخندساده:

saba_rgh
چهارشنبه 14 مرداد 1388, 10:42 صبح
فکر کنم
strat_session () باید در تمام صفحاتت قبل از همه کد ها باید قرار بگیره:لبخندساده:
يعني بايد توي همه صفحات قبل از session_start اين كد رو بنويسيم؟
اصلا راه ديگه اي نيست؟

ini_set('session.gc_maxlifetime', $timeout

اگه از اين استفاده كنم چطور؟ بايد توي همه صفحات وارد بشه؟

mrrajabi
چهارشنبه 14 مرداد 1388, 11:03 صبح
خب این کار سختی نیست که. همه همین کارو می کنن معمولاً. این یک از گیرهای بد php هست که Asp خودش خودکار استارت می کنه ولی php نه

saba_rgh
چهارشنبه 14 مرداد 1388, 15:03 عصر
خب این کار سختی نیست که. همه همین کارو می کنن معمولاً. این یک از گیرهای بد php هست که Asp خودش خودکار استارت می کنه ولی php نه
من توي همه صفحات session_start رو گزاشتم ولي نميدونم بايد دستور

ini_set("session.gc_maxlifetime", "18000");

رو هم توي همه صفحات قبل از session_start قرار بدم يا نه؟
چون وقتي من اين تابع رو توي login.php مينويسم و توي يك صفحه ديگه با تابع ini_get(session.gc_maxlifetime اعتبارو ميگيرم به همون مقدار اوليه توي php.ini مدت اعتبار منه؟:افسرده::ناراحت:

saba_rgh
جمعه 16 مرداد 1388, 23:57 عصر
سلام
كسي نيست جواب سوالهاي منو بده؟ممنون ميشم راهنمائئيم كنيد؟

mohsenshahab
شنبه 17 مرداد 1388, 00:51 صبح
من متوجه قسمت دوم سوالت نشدم
در مورد قسمت اول . شما فقط باید session_start رو در ابتدای همه صفحات بذاری. و Ini_set مربوط به پیکر بندیه

click2ir
شنبه 17 مرداد 1388, 00:57 صبح
دوست عزیز زمانی که سیشن رو تعریف می کنی اگر بهش زمان ندی تا زمانی که مرورگرت باز باشه کار می کنه بعد هم خودش حدف میشه پس باید در هر جا که استفاده می کنی به اون مقدار بدی چون زمانی که بدون مقدار باشه تا زمان باز بودن صفحه و مرورگر اعتبار دارد

saba_rgh
شنبه 17 مرداد 1388, 08:20 صبح
من متوجه قسمت دوم سوالت نشدم
در مورد قسمت اول . شما فقط باید session_start رو در ابتدای همه صفحات بذاری. و Ini_set مربوط به پیکر بندیه
سلام
ini_set مربوط به پيكر بنديه يعني چي؟ كجاي برنامم بايد قرار بدم؟ توي همه صفحات بايد قرار بگيره؟

mrrajabi
شنبه 17 مرداد 1388, 12:51 عصر
یعنی اینکه تو فایل php.ini اگه این پارامتر رو تنظیم کنی دیگه نیازی به تنظیم تو برنامت نداری. ولی به دلیل اینکه شما به سرور(زمانی که برنامت رو آپلود کنی رو سرور) دسترسی نداری بهتره که با ini_set تنظیمات مربوط به سرور رو انجام بدی.
البته یه فایل init.inc.php درست کن و کدهای تکراری مثل همین سشن استارت یا ini_set رو داخلش بذار و فقط همین فایل init.inc.phpرو اینکلود کن تا نخوای تو همه ی صفحه ها بصورت جداگانه کدهاشو بنویسی

saba_rgh
شنبه 17 مرداد 1388, 15:47 عصر
سلام
من بازم جوابمو نگرفتم ميخوام بدونم بايد دستور
ini_set("session.gc_maxlifetime","1800")m
را توي همه صفحات و قبل از دستور session_start قرار بدم يا نه؟

saeid99
شنبه 17 مرداد 1388, 16:13 عصر
نکته مهم اینجاست که شما هر کاری که میخوای با session ها انجام بدی باید کد زیر رو در اولین خط کد php تون قرار بدید


session_start()

saeid99
شنبه 17 مرداد 1388, 16:27 عصر
به لینک زیر سر بزن یه مثال جالب رو آورده...
http://stackoverflow.com/questions/520237/how-do-i-expire-a-php-session-after-30-minutes

mohsenshahab
شنبه 17 مرداد 1388, 17:56 عصر
سلام
من بازم جوابمو نگرفتم ميخوام بدونم بايد دستور
ini_set("session.gc_maxlifetime","1800")m
را توي همه صفحات و قبل از دستور session_start قرار بدم يا نه؟
سلام .عرض کردم شما فقط باید session_start رو در اول هر صفحه بذاری.فقط session_start
در مورد فایل پیکر بندی هم پست mrrajabi رو دوباره بخون
شما نیاز به مطالعه یه کتاب آموزشی در مورد php دارین .مطمئن باش خیلی چیزا دسگیرت می شه