PDA

View Full Version : پاک کردن متغییرهای post و history بعد از لاگین



armintirand
جمعه 12 خرداد 1391, 19:07 عصر
سلام من یک فرم لاگین دارم که در تمام صفحات قرار داره وقتی کاربر در صفحه اول لاگین شد و در صفحه دوم لاگ آوت کرد در صفحه اول باید با رفرش کردن صفحه ببینیم که لاگ آوت تشریف داریم ولی چون کدی که مراحل لاکین من در اونه به تمام صفحات include شده با ریفرش کردن صفحه اول از من میپرسه

To display this page, Firefox must send information that will repeat any action (such as a search or order confirmation) that was performed earlier.
و بازم لاگین میکنه با همون اطلاعات قبلی .
من این دستورات
unset($_POST); unset($_REQUEST);
رو درون اسکریپت لاگینم قرار دادم تا در تمام صفحات در صورت لاگین کردن محتوای آرایه post رو هم پاک کنه ولی باز مشکلم حل نشد نمیدونم شاید باید history مرورگرم پاک کنم

djsaeedkhan
جمعه 12 خرداد 1391, 19:23 عصر
سلام
من دقیق متوجه نشدم شما منظورت چی بود
ولی باید مثل این فروم بعد از لوگین کردن به یه صفحه بری و بعد از اون به صفحه جاری بری. نه اینکه بیای تو همون صفحه اعتبار سنجی کنی که کاربر لوگین کرده یا نه
توجه می نمویی

armintirand
جمعه 12 خرداد 1391, 19:36 عصر
شما درست میفرمایید ولی اگه من بخوام تو همون صفحه ردیفش کنم چی؟

djsaeedkhan
جمعه 12 خرداد 1391, 19:44 عصر
خوب این کار غلطه
شما فرم رو به یه صفحه دیگه ارسال کن و بعد بلافاصله بدون اینکه کاربر متوجه بشه به همون صفحه اول برگرد. با Header استفاده کن
اگر هم بخای می تونی با آجاکس این کارو هم انجام بدی
می تونی تو صفحه وقتی کاربر وارد شد با header همون صفحه رو دوباره لود کنی
تمام

armintirand
جمعه 12 خرداد 1391, 19:54 عصر
راستشو بخوایین با آجاکس تازه کار میکنم و خیلی ضعیفم برام خیلی سخته مخصوصا وقتی میخوام با doom نغییراتی رو تو صفحه بدم ولی در این مورد مشکلم اینه که با ریقرش شدن هنوز لاگینم یعنی تو یک صفحه لاگ آوت کردم و میام تو صفحه ای که لاگین کردم ریفرش میکنم و دوباره لاگین میکنه من مشکلم اینه که میخوام کاری کنم که کاربر چیزی نداشته باشه که بتونه لاگین بمونه البته بعد از لاگ آوت کردن.

djsaeedkhan
جمعه 12 خرداد 1391, 19:58 عصر
خوب من سه تا روش پیشت گذاشتم. هر کدوم رو می تونی انجام بده. ولی بهترین کار همون Header هست.

Reza1607
جمعه 12 خرداد 1391, 20:15 عصر
شما با استفاده از دستور
session_destroy
سشن لاكين رو از بين ببرين
و براي فرم لاكين هم يك شناسه منحصر به فرد (token) ايجاد كنيد و در هربار ارسال اطلاعات اون رو از فرم ارسال شده كاربر با مقدار ذخيره شده داخل سشن جك كنيد اكه مقدارها برابر بود بعد ادامه روند لاكين رو انجام بدين

armintirand
جمعه 12 خرداد 1391, 22:39 عصر
میشه در مورد توکن بیشتر توضیح بدین چون از دستور
session_destroy
استفاده میکنم ولی این توکن بنظرم ایده خیلی جالبی میشه اگه بشه عملی کرد

MostafaEs3
جمعه 12 خرداد 1391, 23:42 عصر
token چیز خاصی نیست .. منم استفاده کردم ازش واسه یک سیستم ... ببین یک رشته که بصورت md5 باشه . مثلا از یوزرنیم گرفته شده باشه درست کن و با متد GET ارسال کن به صفحه ی بعدی همینطور توی سشن هم ذخیره کن
هربار چک کن اگه مقداری که توی سشن هست با مقداری که از طریق آدرس صفحه اومده یکی بود اجازه ی دادن اطلاعات رو بده . برای مثال php my admin از این سیستم استفاده میکنه :)

H:Shojaei
شنبه 13 خرداد 1391, 12:42 عصر
با سلام
دوست عزيز شما براي اين كه بفهميد كاربر لاگ اين كرده از چي استفاده ميكني؟

شما فرم رو به یه صفحه دیگه ارسال کن و بعد بلافاصله بدون اینکه کاربر متوجه بشه به همون صفحه اول برگرد. با Header استفاده کن
بهترين راه هم همين هست كه دوستمون آقاي djsaeedkhan فرمودند.