چک نشدن مقدار if برای خروج کاربر وارد شده
با سلام و خسته نباشید من یه فرم ورود اعضا دارم که کاربری که با موفقیت بتونه login کنه یک لینک خروج با عنوان logout می بینه که با کلیک روی این لینک session اون کاربر پاک شده و دوباره فرم login رو مشاهده میکنه وقتی که وارد فرم login میشه و session ش ذخیره میشه یه query string ایجاد می کنیم که مقدار logout رو تو خودش داره و چک میکنم اگه session کاربر موجود بود و مقدار متغییری مثل $task برابر با رشته logout بود session کاربر رو حذف کن مشکل من اینه که کاربر ورود میکنه حتی query string هم نمایش داده میشه $task هم مقدار میگیره ولی شرط مربوط به اون اجرا نمیشه کل کدها با دیتا بیس رو گذاشتم که دوستان اگه بتونن من رو راهنمایی کنن.
لینک کدها
http://s8.picofile.com/file/8337713326/test.rar.html
مشکل اصلی هم در صفحه login.php و قسمت زیر هست
<?php
if (isset($_SESSION['user_id']))
{
?>
<a href="index.php?task1=100">logout</a>;
<?php
این شرط اصلا چک نمیشه if (isset($task1))
{
if($task1=="100"){
session_unset();
session_destroy();
$b->Redirect_html("index.php?menu_id=2");
}
}
}
البته اسم پایگاه داده تو phpmyadmin و برای اتصال test1 هست
نقل قول: چک نشدن مقدار if برای خروج کاربر وارد شده
وقتی تو لینک بفرستی پارامتر توی آرایه $_GET میره و از ونجا باید چکش کنی
if (isset($_GET['task1']))
{
if($_GET['task1'] =="100"){
session_unset();
session_destroy();
$b->Redirect_html("index.php?menu_id=2");
}
}
}
2 ضمیمه
نقل قول: چک نشدن مقدار if برای خروج کاربر وارد شده
خوب مشکل منم همینجاست که تو صفحه config مقدار رو فرستادم حتی همین کدی که شما نوشتین رو گذاشتم خودم تو صفحه ی login مقدار رو مستقیم بایند کردم ولی نمیدونم چرا اصلا شرط if اجرا نمیشه تا بخواد سشن کاربر رو destroy کنه.
ببینین این خروجیه
ضمیمه 148922
حتی زیر if یه دستور print هم نوشتم ببینم کنترل وارد این قسمت میشه ولی اصلا پیام hello چاپ نمیشه یعنی اصلا شرط if اجرا نمیشه
ضمیمه 148923
دیگه واقعا گیج شدم :ناراحت:
نقل قول: چک نشدن مقدار if برای خروج کاربر وارد شده
درود
این فایل login رو جایگزین و تست کنید : https://miladworkshop.ir/paste/nArEZa
یکم کدها رو با نظم بیشتری بنویسید خیلی راحت تر میشه کمک کرد
نقل قول: چک نشدن مقدار if برای خروج کاربر وارد شده
اینا رو بزار اول کدت ببین محتواشون چیه
var_dump($_GET);
var_dump($_SESSION);
یه اشتباه ساده برنامه نویسی داری جایی احتمالش هست این
if (isset($_GET['task1']))
خودش توی یک شرط دیگست که اجرا نمیشه در نتیجه این شرط هم اجرا نمیشه