PDA

View Full Version : چک نشدن مقدار if برای خروج کاربر وارد شده



baranbahari1320
چهارشنبه 28 شهریور 1397, 21:42 عصر
با سلام و خسته نباشید من یه فرم ورود اعضا دارم که کاربری که با موفقیت بتونه 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 هست

plague
پنج شنبه 29 شهریور 1397, 13:41 عصر
وقتی تو لینک بفرستی پارامتر توی آرایه $_GET میره و از ونجا باید چکش کنی

if (isset($_GET['task1']))
{
if($_GET['task1'] =="100"){
session_unset();
session_destroy();
$b->Redirect_html("index.php?menu_id=2");

}
}

}

baranbahari1320
پنج شنبه 29 شهریور 1397, 19:27 عصر
خوب مشکل منم همینجاست که تو صفحه config مقدار رو فرستادم حتی همین کدی که شما نوشتین رو گذاشتم خودم تو صفحه ی login مقدار رو مستقیم بایند کردم ولی نمیدونم چرا اصلا شرط if اجرا نمیشه تا بخواد سشن کاربر رو destroy کنه.
ببینین این خروجیه
148922
حتی زیر if یه دستور print هم نوشتم ببینم کنترل وارد این قسمت میشه ولی اصلا پیام hello چاپ نمیشه یعنی اصلا شرط if اجرا نمیشه
148923
دیگه واقعا گیج شدم :ناراحت:

MiladWorkShop
جمعه 30 شهریور 1397, 10:03 صبح
درود

این فایل login رو جایگزین و تست کنید : https://miladworkshop.ir/paste/nArEZa

یکم کدها رو با نظم بیشتری بنویسید خیلی راحت تر میشه کمک کرد

plague
جمعه 30 شهریور 1397, 13:57 عصر
اینا رو بزار اول کدت ببین محتواشون چیه


var_dump($_GET);
var_dump($_SESSION);

یه اشتباه ساده برنامه نویسی داری جایی احتمالش هست این

if (isset($_GET['task1']))


خودش توی یک شرط دیگست که اجرا نمیشه در نتیجه این شرط هم اجرا نمیشه