PDA

View Full Version : مطلب : نحوه حرکت بین صفحات PHP توسط دستور Header



kianian
دوشنبه 13 فروردین 1386, 14:02 عصر
سلام
خیلی وقته که برنامه نویسان PHP برای حرکت بین صفحات مشکل دارند مثلا در صفحه ای که نام کاربری و رمز عبور را چک می کنند تصمیم بگیرند گه به صفحه بعد بروند و یا صفحه را به صفحه دیگری هدایت کنند.
برای این کار اغلب برنامه نویسان از کد جاوا اسکریپت استفاده می کنند در واقع دستور window.open یا window.location را با پارامتر ورودی نام صفحه برروی سند HTML چاپ می کنند. این یک راه حال است اما PHP خود تابعی برای جابجائی دارد با نام header.

و اما header :

ابن تابع استفاده های بسیار زیادی دارد که در جای بهتری به آن خواهیم پرداخت.

فرمان بالا صفحه را به صفحه دیگر تغییر مسیر می دهد مثال :



if ( ($user=='admin') && ($pass=='123') )
{
header('Location: inbox.php');
}
else
{
header('Location: invalid.php');
}


خوب الان همه PHP کارها میگن برو بابا این که خطا می دهد و می گه :


Warning: Cannot modify header information - headers already sent by (output started at /home/www/........


درسته اما این خطا که حکایت از فرستاده شده بخش Header صفحه دارد مانع از اجرای فرمان Header می شود.
حالا به راه حل آن توجه کنید :



<?php
ob_start();
?>

<html>
<header>
....
</header>
<boby>

HTML and Your page Design Code


<?php
if ( ($user=='admin') && ($pass=='123') )
{
ob_end_clean();
header("Location: inbox.php");
exit;
}
else
{
ob_end_clean();
header("Location: invalid.php");
exit;
}
?>


<body>



توسط فرمان ob_end_clean شما بافر را تخلیه می کنید و حال می توانید Header‌ را تغییر دهیدو
البته حتما باید مانند استفاده از Session در ابتدای صفحه ، اول اول اون را استارت کنید.
به مثال توجه کنید.

خوب مرسی از توجهتون فعلا خداحافظ .

----------------------------------------------------------
دارم از تو می نویسم
تو که غم داره نگات
اگه دوست داشتی بگو تا بازهم بگم برات
اینقده می گم تا خسته شم
با عشق تو شکسته شم.... !!!!!

cybercoder
دوشنبه 13 فروردین 1386, 16:02 عصر
لطفا قبل از پرسش جستجو کنید.
utf-8 With out BOM اگر از utf-8 استفاده می کنید مشکل شما رو ممکنه حل کنه (معمولا می کنه )

موفق باشید

cybercoder
دوشنبه 13 فروردین 1386, 16:05 عصر
راه دیگش استفاده از Java Script برای Redirect کردنه که به قول OxigenWS پاک کردن صورت مسئله است.