PDA

View Full Version : نحوه بستن Session در php 5.3.8



sir_ams
چهارشنبه 25 آبان 1390, 09:41 صبح
سلام.دوستان من نمیدونم که جلسه رو چطوری ببندم؟آخه دستوراتی مثل session_destroy(),session_unregister و...... توی این ورژن (5.3.8) کار نمیکنه!!!
لطفا راهنماییم کنید.

pejman_view
چهارشنبه 25 آبان 1390, 09:51 صبح
سلام

من تغییرات PHP 5.3.8 را مطالعه کردم اما تغییرات هیچ کدام در رابطه با session ها نبوده یعنی تمام کدها به درستی باید کار کنند، لطفاً پیامی که با آن مواجه می شوید یا کدی که نوشتید را برای ما اینجا بیان کنید تا به شما بیشتر کمک کنیم.

sir_ams
چهارشنبه 25 آبان 1390, 10:22 صبح
ممنون که جواب دادید. ببینید من یه صفحه ورود درست کردم و با جلسه،نام کاربری کاربر رو گرفتم و به صفحات بعدی دادم،حالا میخوام اگه کاربر خروج رو زد جلسه اش از بین بره که دیگه کسی نتونه با تایپ کردن آدرس صفحه اصلی(بدون ورود به سایت) وارد صفحه اصلی بشه! کد ها هم زیاده 7-6 تا صفحه است.

pejman_view
چهارشنبه 25 آبان 1390, 10:57 صبح
سلام

خوب من یه راهنمایی واستون اینجا می نویسم امیدوارم به دردتان بخوره:

یک صفحه فرضاً با نام logout.php بنویسید و داخل آن را اینگونه کد بنویسید:


session_start();
if (isset($_SESSION['test'])){
//destroy_session();
unset ($_SESSION['test']);
header ('location: target.php');
exit();
}


در خط دوم و چهارم بجای test نام session خودتون رو وارد کنید،
در خط پنجم بجای target.php نام فایلی که می خواهید بعد از لاگ اوت برود را انتخاب کنید،
ضمناً خط سوم هم می توانید فعال کنید اینگونه کل session نابود می شود نه فقط session خاص


ضمناً برای جلوگیری از خطا موارد ذیل را رعایت کنید:
1- فایل خود را بدون BOM ذخیره کنید
2- اگر در فایل دیگری استفاده می کنید حتماً در خط های ابتدایی (بخش کنترلر) بگذارید (رعایت MVC)

خطا یابی:
برای تست کردن کد می توانید از کد زیر استفاده کنید:



session_start();
if (isset($_SESSION['test'])){
//destroy_session();
unset ($_SESSION['test']);
print_r($_SESSION);
}


اگر در صفحه نمایش این کد، پیام ذیل را دیدید:
Array ( [test] => 1 )
یعنی هنوز مقدار دارد اما اگر این را دیدید
Array ( )
یعنی مقدار آن پاک شده

البته بعد از اجرای کد حتماً یکبار ctrl+f5 هم بزنید در بعضی از وب سرورها در وحله اول نابود شده نمایش نمی دهد.