این مقاله به بررسی این مطلب می پردازد که چگونه از url ای مانند http://example.com/index.php?p=whatever برای هدایت صفحات وب سایت خود استفاده نمایید.
ابتدا شما باید یک صفحه اصلی ایجاد نمایید. طراحی این صفحه باید به گونه ای باشد که در آن یک منطقه محتوا برای قرار دادن محتوای اصلی سایت بر طبق URL وجود داشته باشد. دقت کنید که در صفحه اصلی میباید به جای کد صفحه و یا محتوای صفحه کد زیر را قرار دهید. این کد وظیفه دارد تا صفحه مورد نظر شما را پیدا کرده و در صورت وجود چنین صفحه ای، محتوی آن را ضمیمه صفحه اصلی نمایید. بدین ترتیب میتوانیم بگوییم توانسته ایم صفحات وب سایت را هدایتگری یا ناوبری کنیم.
نکته: هرچند در روشهای دیگر میتوان از IFrame ها استفاده نمود اما استفاده از این کد ساده تر است.
<?php // Opening tag for PHP
$p = $_GET['p'];
if ( !empty($p) && file_exists('./pages/' . $p . '.php') && stristr( $p, '.' ) == False ) )
{
}
در صورتی که شما تازه کار با php را آغاز کرده اید، بد نیست بدانید عبارتهایی که بعد از // می آیند بعنوان توضیحات یا comment در نظر گرفته میشوند و از آنجایی که کد محسوب نمیشوند، ارزش اجرایی ندارند.
در کد بالا خط اول صرفا آغاز کننده کد php است. در حقیقت این خط کد به وب سرور میگوید که از اینجا تا زمانی که به عبارت ?> برسیم، همه چیز کد php باید در نظر گرفته شود.
خط دوم به این منظور نوشته شده است تا مقصد مورد نظر را از url استخراج کند و آن را در متغیر $p قرار دهد دقت کنید که همانظور که قبلا گفته شد میخواهیم url چیزی شبیه به این باشد : http://example.com/index.php?p=whatever یعنی نام صفحه مقصد پس از عبارت p= قرار گیرد.
نکته: به این روش ارسال پارامترها در صفحات وب query string گفته میشود.
اکنون باید بررسی کنیم که اولا صفحه مورد نظر توسط url مشخص گردیده است و ثانیا صفحه مقصد وجود دارد و در نهایت اینکه در url عبارت نقطه یا . وجود ندارد.
بگذارید این قسمت از کد را بیشتر توضیح دهیم :
$file = './pages/' . $p . '.php';
در php نام متغیرها با $ آغاز میشود. در اینجا ما متغیری به نام $file داریم که قرار است در آن آدرس واقعی صفحه ذخیره شود. در این برنامه ما فرض را بر آن گرفته ایم که صفحات وب مورد نظرمان در فولدری به نام pages قرار دارند. لذا برای ایجاد آدرس فایل، میبایست کد بالا را بنویسم. دقت کنید که در این کد رشته ها با استفاده از . به همدگیر وصل شده اند و در نهایت تشکیل url مورد نظر را میدهند.
موضوعی که باید آن را نیز در نظر داشته باشیم این است که در صورتی که url مورد نظر معتبر نباشد، مثلا در آن عبارت p= وجود نداشته باشد یا ... چه اتفاقی باید بیفتد ؟
در این حالت کاری که میکنیم این است که صفحه ای را به صورت پیش فرض در نظر گرفته و کاربر را به آن صفحه پیش فرض میفرستیم :
else
{
$file = './pages/default.php';
}
البته میتوانیم کاربر را به صفحه ای هدایت کنیم که در آن به کاربر اعلام شود صفحه مورد نظرش در وب سایت وجود ندارد.
اکنون تنها لازم است صفحه مقصد را ضمیمه صفحه فعلی نماییم تا کار تکمیل گردد. در php برای انجام این کار از چنین عبارتی استفاده مینماییم:
include $file;
?>