ما طراحان از کپی و ریپ شدن قالب هایمان رنج میبریم و خوب یکی از راه های جلوگیری از این کار را در این مطلب آموزش میدهیم.
درواقع ما عملاً هیچ فایلی بهنام style.css نداریم و با کمک اچتیاکسس style.php را تبدیل به style.css میکنیم.
شاید تنها ایرادی که این روش داشته باشد این است که برای هربار بارگذاری شدن سایت، باید تعدادی دستور پیاچپی اجرا و کامپایل شود و این برای سایتهایی که بازدید بالا دارند اصلاً خوب نیست چرا که فشار زیادی به سرور وارد میشود و مورد دیگر اینکه حتی با استفاده از این روش نیز دستورات سیاساسمان همچنان با فایرباگ قابل روئیت میباشند!
خوب روش انجام کار به صورت زیر است
فرض میکنیم یک صفحهای داریم بهنام index.php؛ کدهای اچتیامال زیر را هم در آن داریم:
[codesyntax lang=”php”]
| <html> <head> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> گروپ دیزاین! </body> </html> |
[/codesyntax]
حالا کد پیاچپی زیر را به بالای index.php اضافه میکنیم، یعنی قبل از شروع شدن <html> باید قرار بگیرد:
[codesyntax lang=”php”]
| <?php session_start(); $_SESSION["csskey"] = "user"; ?> |
[/codesyntax]
با اینکار برای کاربر در هنگام ورود یک سشن با نام csskey که برابر با user است، ست کردیم.
سپس یک فایل با نام style.php می سازیم و تکهکد پیاچپی زیر را در ابتدای آن قرار میدهیم و بعد از آن، دستورات سیاساسمان را اضافه میکنیم:
[codesyntax lang=”php”]
| <?php session_start(); header("Content-type: text/css"); if ($_SESSION["csskey"] != "user") {die(":-)");} $_SESSION["csskey"] = "somethingelse"; ?> body {background-color: #۰۰۰; color: #fff; direction: rtl;} |
[/codesyntax]
فکر کنم متوجه شده باشید که چه اتفاقی قرار است بیاُفتد. Content-type را از نوع text/css میگذاریم تا مرورگر آن را بهعنوان یک فایل سیاساس تفسیر کند.
سپس میگوییم اگر csskey برابر با user نبود، دستورات سیاساس را بارگذاری نکن و در خروجی «:-)» را چاپ کن.
اما اگر csskey برابر با user بود، آنوقت دوباره csskey را برابر با somethingelse میکنیم و در خروجی دستورات سیاساس را برمیگردانیم.
و در آخر فقط کافی است دو خط زیر را به فایل .htaccess اضافه کنیم:
[codesyntax lang=”php”]
| RewriteEngine on RewriteRule style.css style.php |
[/codesyntax]