PDA

View Full Version : سوال: Redirecting to previous page after login | تغییر مسیر به صفحه قبلی بعد از ورود به سیستم



moslem_f
پنج شنبه 10 مرداد 1392, 17:17 عصر
سلام عرض ادب و خسته نباشید و آرزوی قبولی نماز و روزهای دوستان و مدیران گرامی میرم سر اصل مطلب انگلیسی و فارسی زیاد سرچ کردم متاسفانه به علت ضعیف بودن زبان به نتیجه ای که می خواستم نرسیدم در مورد فارسی هم در همین جا و انجمن های مختلف سرچ کردم و به علت پیدا نکردن کلمه کلیدی مناسب باز هم به نتیجه نرسیدم پس بر این شدم تا در این جا مطرح کنم و از دوستان عزیز کمک بگیرم بیشتر به توضیح می پردازم ؛

یک php file دارم به اسم categorymanagement.php که داخل این page از session استفاده کردم که اگر user من login کرده بود و برای دسترسی به این page roll 1 داشت بتونه page رو مشاهده کنه ! که از قرار کد زیر هست ؛


if(!isset($_SESSION['userid']) or ($_SESSION['roll'] != 1 )) die('اجازه دسترسی به این قسمت را ندارید');
حالا سوال اینه که می خوام زمانی که user و یا کسی که چه به صورت حدسی و یا به هر نوعی میدونست که من یک page دارم به اسم categorymanagement.php و خواست این برگه رو در url باز کنه به خودی خود به page login.php redirect بشه و بعد از این که login کرد و اگر سطح دسترسی داشت برای استفاده از اون page بتونه به اون page که در خواست کرده بوده مجدد redirect بشه ((مثل وردپرس)) ادامه توضیحات در خطوط بعد

اگر این برگه رو از وردپرس در خواست کنی

http://www.site.ir/wp-admin/
سریع شما رو به این برگه می فرسته

http://www.site.ir/wp-login.php?redirect_to=http://www.site.ir/wp-admin/&reauth=1
و بعد از login شدن دوباره به صفحه زیر می فرسته

http://www.site.ir/wp-admin/

که من کد های وردپرس رو هم نگاه کردم ولی متوجه نشدم این امکان رو چه طوری پیاده سازی کردن !
ادامه توضیحات
اگر هم دسترسی رو نداشت و به قولی session ست نشده بود و حتی با ست شدن سشن اگر session rool با 1 برابر نبود پیغامی مبنی بر اینکه شما دسترسی لازم را ندارید چاپ بشه و از اجرای ادامه برنامه جلوگیری بشه ممنونم با تشکر.
ارادتمند : مسلم فلاح نیت

T.R.G.T
پنج شنبه 10 مرداد 1392, 17:31 عصر
میتونی برسی کنی که آیا دسترسی داره اگه دسترسی نداشت میتونی ریدایرکتش کنی به هرفایلی که میخوای برای اینکار میتونی از تابع header ودستور Location استفاده کنی ولی بنظر من بهتره تمام کار ها رو با ایندکس انجام بدی ویجور سیستم یکپارچه ایجاد کنی



if(....){
....
}else{
header('Location:url');
}

moslem_f
پنج شنبه 10 مرداد 1392, 17:38 عصر
دوست من ممنون بابت پاسخ شما اما متوجه منظور شما نشدم یعنی چی بهتره تمام کار ها رو در index انجام بدم برای بهتر متوجه شدن من نمونه کدی دارید که لطف کنید برام قرار بدین و این که من فقط می خوام طرف خواست برگه رو باز کن با فرض خودش بر این که من ابله بودم و از دسترسی سایرین به این برگه جلوگیری نکردم برگه لاگین باز بشه و بعد از لاگین با وجود بر قرار بودن session که تعریف کردم برگرده به صفحه ای که در خواست داشته یعنی همون صفحه categorymanagement.php با تشکر.

sanecity
پنج شنبه 10 مرداد 1392, 23:55 عصر
سلام
همونی که دوستمون گفتنه :

<?php
if($user == true)
{
$next_page = "logout.php" ;
header("Location: " . $next_page);
}
?>
بجای next_page هر صفحه ای میخای بزار

moslem_f
جمعه 11 مرداد 1392, 01:26 صبح
$page = basename(__FILE__);

if(!isset($_SESSION['userid']) or ($_SESSION['roll'] != 1 ))
{
header("Location: login.php?redirect_to=$page") ;
}


------------------------------------------



$page = basename(__FILE__);
if(isset($_POST['username']) AND isset($_POST['password']) AND !empty($_POST['username']) AND !empty($_POST['password']))
{
$username = $_POST['username'];
$password = $_POST['password'];
$result = userLogin($username,$password);
if(mysql_num_rows($result) == 1)
{
if(isset($_GET['redirect_to']))
{
$page = $_GET['redirect_to'];
header("Location: $page");
}
else{
header("Location: index.php");
}

}else
{
echo "خطای سیستمی";
}
}

lord_viper
جمعه 11 مرداد 1392, 10:52 صبح
موقع میتونین ریفر صفحه رو بگیرین که از کدوم صفحه وارد این صفحه شده و موقع ریداریکت ازش استفاده کنید

T.R.G.T
جمعه 11 مرداد 1392, 11:50 صبح
ببین میتونی با htaccess تمام درخواست ها از سرور (چه در خواست اجرای فایل categorymanagement.php و چه درخواست ارسال یک تصویر) رو به فایل index.php ارجاع بدی و با استفاده از اون تمام درخواست ها رو مدیریت کنی

moslem_f
جمعه 11 مرداد 1392, 15:15 عصر
سلام عرض ادب و خسته نباشید دوست من مقاله خاصی دارید در مورد htaccess خیلی ممنون میشم که اگر مقاله کاملی در موردش دارید بزارید برام با تشکر.