PDA

View Full Version : برگشت به صفحه قبل



terrorhell
شنبه 24 مرداد 1388, 01:42 صبح
سلام
بچه ها میخواستم در مورد یه کاری که تو اکثر فروم ها و سیستم های تحت وب انجام میشه سوال کنم

مثلاً تو همین فروم من میخوام پست بدم ولی هنوز لاگین نکردم با نام کاربری خودم ، بعد منو به صفحه لاگین میفرسته و من لاگین میکنم بعد منو به همون صفحه ای که توش بودم یا میخواستم برم داخلش باز دوباره مفرسته

ممنون میشم راهنمایی کنید که اینکار به چه صورتی انجام میشه

arezoo_66
شنبه 24 مرداد 1388, 08:51 صبح
خوب شما از يه if استفاده مي كنيد كه مثلا اگه كاربر لاگين كرده مي تونه از اطلاعات استفاده كنه و اگر نه صفحه لاگين رو نمايش بده البته يه اتصال هم به ديتابيس ميزنه تا ليست لاگين كرده هارو هم جستجو كنه من يه كد مشابه اين كارو ميكنه دارم اگه خواستين اينجا ميزام

sedamorde
شنبه 24 مرداد 1388, 10:10 صبح
من معمولا این کار را اینطوری انجام میدم که آدرس صفحه ای که کاربر در آن هست را در url میذارم :



'login.php?finish=http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

بعد که کاربری وارد شد اون را با دستور header به صفحه ای که بوده میفرستم :



$finish = $_REQUEST['finish'];
header("Location: $finish");

terrorhell
شنبه 24 مرداد 1388, 12:46 عصر
من معمولا این کار را اینطوری انجام میدم که آدرس صفحه ای که کاربر در آن هست را در url میذارم :



'login.php?finish=http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

بعد که کاربری وارد شد اون را با دستور header به صفحه ای که بوده میفرستم :



$finish = $_REQUEST['finish'];
header("Location: $finish");


سلام ممنون دسوت عزیز من خودم هم همین مورد مد نظرم بود و گفتم پست بدم شاید دوستان راه بهتری پیشنهاد کنن !

arezoo .... شما هم اگه امکان داره اون نمونه کد رو بزارید ! ممنون

terrorhell
شنبه 24 مرداد 1388, 13:27 عصر
در ضمن من خودم از این روش مثلاً به این صورت استفاده کردم که به مشکل خوردم

مقلاً میخوام به یک کاربری پی ام بزنم و باید به این آدرس برم profile.php?user=terrorhell&PM

اینجا ما دو مقدار ارسال با GET داریم ، من در صفحه ای که ارسال پیام هست این دسوترات رو کذاشتم :


if(!isset($_SESSION['admin']))
{
$_GET['ok'] = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']."";
header("Location: login.php?ok=".$_GET['ok']."");

}

و وقتی به صفحه login.php میفرسته آدرس متغیر ok رو درست چاپ میکنه : login.php?ok=http://localhost/profile.php?user=terrorhell&PM
اما وقتی لاگین میکنم و میخوام به همین صفحه بفرستم ، متغیر ارسالی PM رو برمیداره و به این آدرس میفرسته : http://localhost/profile.php?user=terrorhell

ممنون میشم دوستان راهنمایی کنن

در ضمن اینم بگم که با سشن همچین مشکلی پیش نمیاد !

امیـرحسین
شنبه 24 مرداد 1388, 15:53 عصر
شما نباید یه آدرس کامل رو توی کوئری داشته باشید این یعنی دو تا //:http و چند تا ? و &.
باید ok رو Encode (توسط urlencode) کنید و موقع redirct مجددا decode (توسط urldecode) کنید.