صفحات پویا در PHP PHP. ایجاد صفحه پویا یک صفحه در php بنویسید



بنابراین، دوستان، اگر به این درس رسیده اید، یا یک سرور محلی نصب کرده اید یا یک هاست خریداری کرده اید که می توانید با PHP کار کنید. تبریک می گویم - این یک قدم بزرگ است!

من به طور خلاصه در مورد PHP می گویم - این زبان برنامه نویسی در سراسر جهان استفاده می شود و شما می توانید سایت هایی با تمام سطوح پیچیدگی از سایت های کارت ویزیت گرفته تا پورتال های بزرگ ایجاد کنید. من فکر می کنم این دیگر برای بسیاری راز نیست که بزرگترین رسانه های اجتماعی facebook.com(از ابتدا در php) و vk.com(موتور در php) با PHP نوشته شده بودند. پس بیایید نتیجه گیری کنیم و کار را شروع کنیم!)

نحوه کار کد

کد پی اچ پی در سمت سرور پردازش می شود. یعنی صفحه تمام شده ای وجود ندارد. به عنوان مثال، در کد دستور جمع آوری اطلاعات در مورد تعداد کاربرانی که در حال حاضر در سایت ثبت نام کرده اند داده می شود. بازدیدکنندگان وب سایت روی یک لینک کلیک می کنند تمام کاربران. او می خواهد بگیرد داده های پویایعنی آنهایی که مدام در حال تغییر هستند. پس از اتمام محاسبات روی سرور، داده ها به صورت کد HTML تولید شده از صفحه با تعداد کاربران از سرور می آید. در نتیجه پس از کلیک بر روی لینک، کاربر صفحه را دریافت می کند. اگر کد صفحه به دست آمده را مشاهده کنید، فقط می توانید HTML را ببینید و کد PHP برای مشاهده در دسترس نخواهد بود. به طور کلی، PHP دستورالعمل‌هایی است که به سرور در مورد چگونگی و از کدام بلوک‌ها ایجاد یک صفحه می‌دهد.

کد پی اچ پی چه شکلی است و کجا باید آن را پیست کنم؟

کد PHP را می توان مستقیماً در HTML جاسازی کرد. کد PHP با استفاده از براکت های زاویه ای و علامت سوال در صفحات HTML تعبیه شده است ، با این حال، می توانید خود را به پرانتزهایی با علامت سوال محدود کنید . شما فقط باید پسوند فایل را تغییر دهید، به عنوان مثال از .htmlبر php

کد پی اچ پی(فایل index.php)



مثال PHP


پژواک "سلام دنیا!"؛
?>



تظاهرات دانلود منابع
نتیجه کد خروجی متن ساده خواهد بود سلام دنیا!. بپرسید چرا برای نمایش متن ساده کد php بنویسید؟ بیانیه پژواک، که کمی بعد در مورد آن صحبت خواهیم کرد، برای چیزی بیشتر از نمایش متن مورد نیاز است. بیشتر اوقات، اکو برای نمایش نتیجه برخی از عملکردهایی که یک محاسبه را انجام داده یا داده ها را از یک پایگاه داده گرفته است (پایگاه داده چیست؟) استفاده می شود. یعنی برای نمایش داده پویا.

عبارت echo در PHP

همانطور که قبلاً فهمیدید، اپراتور اکوبرای خروجی داده ها مورد نیاز است. ما محتوا (در مورد ما، فقط متن تا کنون) را وارد می کنیم نقل قول هاو با نقطه ویرگول به پایان می رسد ; این نشان دهنده پایان کار اپراتور است.

در برنامه نویسی، هنگام ایجاد صفحه اول، مرسوم است که از عبارت استفاده شود سلام دنیا!- به این معنا که سلام دنیا!این همان چیزی است که ما استفاده می کنیم. در مثال، ما از html استفاده نخواهیم کرد، زیرا این کار ضروری نیست.

کد پی اچ پی

پژواک "سلام جهان!"؛
?>
برنامه خروجی خواهد شد سلام دنیا!.
در اولین مثال، ما یک کد کوچک php را در html وارد کردیم. حال، برعکس، بیایید عناصر html را در کد php جاسازی کنیم.

کد پی اچ پی

پژواک" ";
پژواک" ";
پژواک" اولین اسکریپت PHP من";
پژواک"";
پژواک" ";
پژواک"

سلام دنیا!

";
پژواک ""؛
?>
در نتیجه یک صفحه خالی با عنوان دریافت می کنیم سلام دنیا!

چاپ بیانیه در PHP

برخلاف دستور echo، چاپ داده‌ها از جمله فاصله‌ها و شکسته‌های متن را به دست می‌آورد. دارای محدودیت هایی است - شما می توانید فقط از یک آرگومان استفاده کنید، echo multiple. بیشتر از اکو طول می کشد. در آینده هنگام نوشتن توابع به این عملگر متوسل خواهیم شد.

چاپ "سلام جهان!
خط دوم متن"؛ // نتیجه در دو خط نمایش داده می شود
?>
متن به همان شکلی که نوشته شده نمایش داده می شود.

بیانیه خروجی - نحو PHP heredoc

همانطور که قبلاً متوجه شده اید، نمایش یک صفحه با استفاده مداوم از دستور echo زشت و غیرقابل خواندن است. بنابراین، برای خروجی بخش‌های بزرگی از کد html، عبارت خروجی دیگری با استفاده از نحو heredoc وجود دارد. همچنین داده ها را به همان شکلی که بود (فاصله ها و خط فاصله ها) خروجی می دهد.

اکو<<

مثال


نمونه ای از خروجی حجم زیادی از متن با استفاده از html


پاراگراف دوم همین متن حجیم.


اینجا؛
?>

یادآوری برای درس

کد پی اچ پی می تواند:

1. حاوی هیچ عنصر html نیست. صفحه و متن همچنان نمایش داده می شود. html برای نشانه گذاری محتوای زیبا مورد نیاز است.

2. هم در کد html گنجانده شود و هم آن را در داخل عبارات خروجی خود (اکو، چاپ و غیره) قرار دهد. نکته اصلی این است که طراحی را فراموش نکنید

3. صفحات دارای کد php باید پسوند مناسب داشته باشند: .php .phtml

از درس های بعدی به تجزیه و تحلیل اصول ساخت وب سایت در php می پردازیم که در آن تمامی مزایای استفاده از این زبان را مشاهده خواهید کرد!

با تشکر از توجه شما!

در آخرین درس، متوجه شدیم که قالب سفر از چه بلوک هایی تشکیل شده است، بنابراین می توانید شروع کنید. بیایید با ایجاد دو پوشه شروع کنیم:

images - این پوشه حاوی هر فایل تصویری است که برای استایل دادن به الگو استفاده می شود. زیرا ما هنوز هیچ پیشرفتی در طراحی نداریم، پس هر فایل گرافیکی را در این پوشه بریزید، در غیر این صورت جوملا قالب را نصب نمی کند و در صورت خالی بودن پوشه خطا می دهد.

توجه: گرافیک محتوا را نمی توان در پوشه تصاویر قالب قرار داد!

css - این پوشه حاوی خواهد بود فایل های شیوه نامه آبشاری. برای شروع، اجازه دهید یک فایل template.css خالی در آن قرار دهیم که به کمک آن سبک های مختلف طراحی به عناصر سایت اختصاص داده می شود.

در مرحله بعد، می توانید شروع به ایجاد مهم ترین فایل index.php کنید، که مکان بصری عناصر سایت را تعیین می کند و به سیستم مدیریت محتوا جوملا می گوید که اجزا و ماژول های مختلف را در کدام بلوک قرار دهد. این فایل ترکیبی از PHP و HTML است.

من همیشه هنگام نوشتن کد فقط از Macromedia Dreamweaver استفاده می کنم. یک برنامه عالی، من به شدت آن را به مبتدیان توصیه می کنم، زیرا. اگر در حین کار روی کد اشتباهی مرتکب شوید، برنامه قطعا جمب شما را برجسته می کند.

در سایت شما آموزش Macromedia Dreamweaver را خواهید دید. اگر قصد توسعه وب سایت ها را دارید، پس این برنامه باید حداقل در سطح اولیه تسلط داشته باشد تا کدهای قالب را بدون خطا ویرایش کنید.

مکان یابی عناصر (بلوک) صفحه با استفاده از کد HTML انجام می شود، به طور خاص از تگ های DIV استفاده خواهیم کرد. اما روشی که سایت ما روی موتور جوملا کار خواهد کرد، یعنی. پویا خواهد بود، همچنین باید از آن استفاده کنید زبان PHP. با کمک آن، ما تعیین خواهیم کرد که موقعیت های نمایش ماژول ها در کدام بلوک ها قرار می گیرند و این موقعیت ها چگونه فراخوانی می شوند، آیا بلوک ها فرو می ریزند یا خیر. بیایید شیوه نامه ها را از فایل های خارجی، زبان محتوا وصل کنیم، نحوه تغییر اندازه سایت و غیره را تنظیم کنیم.

index.php

هدر فایل

هدر فایل از چند قسمت تشکیل شده است. اولین قسمت از کد هدر PHP این است که مطمئن شوید فایل به دلایل امنیتی مستقیماً در دسترس نیست.

< ?php
تعریف شده ("_JEXEC") یا مرگ ;
JHtml::_("behavior.framework" , true ) ;
$app = JFactory::getApplication() ;
?>
< ?php echo "< ?" ; ?> xml version="1.0" encoding=" < ?php echo $این-> _charset ?> "?>

DOCTYPE یک پارامتر بسیار مهم است که بر اساس آن مرورگر تصمیم می گیرد که چگونه این صفحه را نمایش دهد و چگونه CSS را تفسیر کند.

< ! DOCTYPE html PUBLIC "- / / W3C/ / DTD XHTML 1.0 Strict/ / EN""http: / / www.w3.org/ TR/ xhtml1/ DTD/ xhtml1-strict.dtd">

قطعه زیر زبان نصب شده را از پیکربندی جهانی بازیابی می کند.

< html xmlns= "http://www.w3.org/1999/xhtml" xml:lang=" < ?php echo $این-> زبان؛ ?>"زبان = < ?php echo $این-> زبان؛ ?>" dir=" < ?php echo $این-> جهت؛ ?>" >

در زیر یک قطعه کد است که شامل اطلاعات اضافی برای هدر است که در پیکربندی جهانی تنظیم شده است. شما می توانید این اطلاعات را با مشاهده کد منبع هر صفحه وب مشاهده کنید. به طور خاص، اینها متا تگ هایی هستند که قبلاً در مورد آنها می دانید.

< head>
< jdoc:include type= "head" / >

خطوط زیر در هدر حاوی پیوندهایی به سبک های CSS اصلی جوملا است.

< link rel= "stylesheet" href= "< ?php echo $این-> baseurl ?> /templates/system/css/system.css" type="text /css" / >
< link rel= "stylesheet" href= "< ?php echo $این-> baseurl ?> /templates/system/css/general.css" type="text /css" / >

برای استفاده از سبک های طراحی قالب، به فایلی که حاوی شیوه نامه های آبشاری template.css است که در پوشه CSS قرار دارد، پیوند ایجاد می کنیم. مهم نیست که این فایل هنوز خالی باشد، نکته اصلی اتصال آن است، بعداً که قالب را روی جوملا نصب می کنیم به طراحی می پردازیم. این کار باعث می شود که نتیجه را راحت تر ببینید.

< link rel= "stylesheet" href= "< ?php echo $این-> baseurl ?> /templates/< ?php echo $این-> الگو ?> / css/ template.css" type="text /css" / >

قطعه کد زیر به ما اجازه می دهد اگر هیچ ماژولی در موقعیت های "چپ" و "راست" وجود نداشته باشد، ستون های چپ یا راست را جمع کنیم. اگر هر دو ستون جمع شوند، محتوا 100٪ از عرض صفحه را اشغال می کند. اگر فقط یک ستون گنجانده شود، محتوا 80٪ را اشغال می کند. با گنجاندن دو ستون، محتوا 60٪ از عرض صفحه را تشکیل می دهد.

< ?php
اگر ($ این-> countModules("چپ و راست" ) == 0) $contentwidth = "100" ;
اگر ($ این-> countModules("چپ یا راست" ) == 1) $contentwidth = "80" ;
اگر ($ این-> countModules("چپ و راست" ) == 1) $contentwidth = "60" ;
?>

هدر بستن

< / head>

< body>

بلوک "صفحه" فقط شامل طراحی صفحه سایت است، عرض آن 950 پیکسل خواهد بود.

< div id= "page" >

بلوک "بالا" در بالای صفحه قرار دارد و شامل دو بلوک "لوگو" و "user1" است.

< div id= "top" >

در بوکه "لوگو"، فایل گرافیکی لوگو را قرار می دهیم، این در شیوه نامه ها نوشته می شود. اما خروجی خودکار نام سایت را در فایل index.php می نویسیم و نام در تگ H1 قرار می گیرد که برای بهینه سازی موتورهای جستجو بسیار مهم است.

< div id= "logo" >
< h1> < ?php echo $app - >getCfg("نام سایت"); ?>< / h1>
< / div>

بیایید موقعیت "user1" را در بلوکی به همین نام برای نمایش ماژول جستجوی سایت تعریف کنیم.

< div id= "user1" >
< jdoc:include type= "modules" name= "user1" style= "xhtml" / >
< / div>
< / div> < ! - - конец блока top - - >

خروجی ماژول منوی افقی در بلوک "user2" در موقعیت "user2". اگر هیچ ماژولی در آن موقعیت وجود نداشته باشد، بلوک فرو می ریزد.

< ?php if ($این-> countModules("user2") : ?>
< div id= "user2 " >
< jdoc:include type= "modules" name= "user2" style= "xhtml" / >
< / div>
< ?php endif ; ?>

بعد بلوک هدر سایت "header" می آید. در آن، ما موقعیت "هدر" را برای خروجی ماژول ها تعریف می کنیم. اگر هیچ ماژولی در آن موقعیت وجود نداشته باشد، بلوک فرو می ریزد. من عمداً قابلیت های این بلوک را گسترش دادم تا بتوانم نه تنها تصویر هدر، بلکه چرخاننده های تصویر را نیز در آن قرار دهم.

< ?php if ($این-> countModules(" سرتیتر") ) : ?>
< div id= "سرتیتر">
< jdoc:include type= "modules" name= "سرتیتر" style="xhtml" />
< / div>
< ?php endif ; ?>

در بلوک "user3" موقعیت "user3" را برای نمایش ماژول ها تعریف کنید.

اگر هیچ ماژولی در این موقعیت "user3" نمایش داده نشود، بلوک جمع می شود.

< ?php if ($این-> countModules ("user3") ): ?>
< div id= "user3" >
< jdoc:include type= "modules" name= "user3" style= "xhtml" / >
< / div>
< ?php endif ; ?>

بلوک ستون سمت چپ باز می شود، که اگر هیچ ماژولی در موقعیت "چپ" وجود نداشته باشد، فرو می ریزد.

< ?php if ($این-> countModules("سمت چپ") ): ?>
< div id= "left" >
< jdoc:include type= "modules" name= "left" style= "xhtml" / >
< / div>
< ?php endif ; ?>

مهم‌ترین بلوک محتوا باز می‌شود که بسته به تعداد ستون‌های گنجانده شده، می‌تواند 100 درصد عرض صفحه، 80 درصد و 60 درصد را به خود اختصاص دهد.

< div id= "content< ?php echo $contentwidth ; ?> " >

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

< jdoc:include type= "message" / >

خروجی محتوا

< jdoc:include type= "component" style= "xhtml" / >
< / div> < ! - - конец блока контента- - >

بلوک ستون سمت راست باز می شود، که اگر ماژولی در موقعیت "راست" نباشد، جمع می شود.

< ?php if ($این-> countModules ("راست") : ?>
< div id= "rigth" >
< jdoc:include type= "modules" name= "right" style= "xhtml" / >
< / div>
< ?php endif ; ?>

خروجی بلوک "footer" که برای نمایش ماژول "HTML code" با اطلاعات حق چاپ طراحی شده است. همچنین می توانید یک منوی افقی پایین یا یک ماژول ارائه محتوا را در اینجا قرار دهید. اگر بیش از یک ماژول در این موقعیت از "footer" نمایش داده نشود، بلوک جمع می شود

< ?php if ($این-> countModules("footer") ): ?>
< div id= "footer" >
< jdoc:include type= "modules" name= "footer" style= "xhtml" / >
< / div>
< ?php endif ; ?>

بلوک صفحه سایت "صفحه"، بدنه و همه کدها بسته هستند.

< / div> < ! - - конец блока page- - >
< / body> < ! - - конец блока body - - >
< / html> < ! - - конец кода- - >

ما یک فایل index.php کامل ایجاد کرده ایم. اکنون می دانید که بلوک های قالب با چه دستوراتی و به چه ترتیبی نمایش داده می شوند.

توجه: برای اینکه کد قالب از پنل مدیریت جوملا خوانده شود، فایل index.php باید در ویرایشگر AkelPad باز شود و در رمزگذاری UTF-8 ذخیره شود و تیک BOM را بردارید. اگر از برنامه Macromedia Dreamweaver برای کار با فایل استفاده کرده‌اید، باید «Edit» > «Page Properties» را در منوی بازگشتی انتخاب کنید و رمزگذاری سند یونیکد (utf-8) را انتخاب کنید، در حالی که تیک «enable Unicode signatures (BOM» را بردارید. )". با این حال، من قویاً به شما توصیه می کنم که اگر چیزی را خراب کردید، کد را از پنل مدیریت جوملا ویرایش نکنید - بر خلاف برنامه Macromedia Dreamweaver که همیشه می توانید تغییرات ایجاد شده را لغو کنید، راه برگشتی وجود ندارد.

طراحی بلوک ها در template.css توضیح داده خواهد شد. اما ما پس از نصب قالب در جوملا 3 (جوملا 2.5) استایل شیت ها را سفارشی می کنیم و برای این کار باید ایجاد کنید

برای ایجاد یک سایت امیدوارکننده، قابل گسترش و موثر با هر پیچیدگی، باید با یک سایت ساده شروع کنید. این فرآیند آسان نیست، به دانش اولیه خاصی از PHP و MySQL نیاز دارد، اما اگر نقطه به نقطه به آن نگاه کنید، می‌توانید نوعی «برنامه کاری» تهیه کنید که هنگام ایجاد سایت‌های جدید به کارتان می‌آید. بیایید "هسته" و پایه پروژه را آماده کنیم. در ابتدا یک سایت کارت ویزیت معمولی خواهد بود، اما سپس با افزودن قابلیت می توان آن را به هر چیزی تبدیل کرد. پس بیایید شروع کنیم.

1. آماده سازی پایگاه داده. اولین جدول را در پایگاه داده MySQL ایجاد کنید

یک پایگاه داده جدید، به عنوان مثال "mysite" ایجاد کنید. من شخصاً به کار با رمزگذاری UTF-8 عادت دارم، بنابراین فوراً رزرو می کنم: مطمئن شوید که همه فایل های متنی سایت، خود پایگاه داده، جداول و فیلدهای جدول در یک کدگذاری قرار دارند.
یک جدول در یک پایگاه داده جدید ایجاد کنید. بیایید آن را "صفحات" بنامیم. این جدول صفحات ثابت سایت آینده و اطلاعات مربوط به آنها را ذخیره می کند. جدول باید شامل فیلدهای زیر باشد:

  • page_id - شناسه صفحه (SMALLINT، کلید اولیه، auto_increment)؛
  • page_alias - نام مستعار صفحه برای رشته آدرس CNC (VARCHAR، 255)؛
  • page_title - عنوان صفحه در پنجره مرورگر (VARCHAR, 255)؛
  • page_meta_d - توضیحات متای صفحه برای تگ توضیحات متا (VARCHAR, 255);
  • page_meta_k - متا کلمات کلیدی برای برچسب کلمات کلیدی متا (VARCHAR, 255);
  • page_h1 - عنوان صفحه (VARCHAR, 255);
  • page_s_desc - توضیح کوتاهمطالب، به عنوان مثال، اگر مطالب سایت در قالب یک وبلاگ (TEXT) باشد.
  • page_content - متن اصلی صفحه که در ستون مرکزی سایت (TEXT) نمایش داده می شود.
  • page_publish - در صورتی که صفحه منتشر شده باشد، حاوی "Y" یا در صورت پنهان بودن "N" است (CHAR، پیش فرض "Y" است).

بلافاصله پس از ایجاد جدول، مقادیر مربوط به صفحه اصلی سایت را در آن درج کنید. در قسمت "page_alias" برای صفحه اصلی، پیشنهاد می کنم مقدار "home" را وارد کنید. متا تگ ها - با توجه به موضوع کل سایت. به همین ترتیب، می توانید صفحات دیگری را ایجاد کنید، به عنوان مثال، "درباره شرکت" با نام مستعار "درباره" و متا تگ های خود، یا "Contacts" با نام مستعار "contacts" و غیره.

2. یک فایل پیکربندی سایت ایجاد کنید

در پوشه ریشه سایت که در این مرحله باید خالی باشد یک پوشه cfg ایجاد می کنیم که در آن با استفاده از htaccess دسترسی را با دستور deny from all می بندیم. یک فایل core.php با محتوای زیر ایجاد کنید:

// MySQL
کلاس MyDB
{
var $dblogin = "ریشه"; // ورود به پایگاه داده شما
var $dbpass = ""; // رمز عبور پایگاه داده شما
var $db = "mysite"; // نام پایگاه برای سایت
var $dbhost="localhost";

var$link;
var$query;
var $err;
var $result;
var$data;
var $fetch;

تابع connect() (
$this->link = mysql_connect($this->dbhost، $this->dblogin، $this->dbpass);
mysql_select_db($this->db);
mysql_query("SET NAMES utf8");
}

تابع close() (
mysql_close($this->link);
}

اجرای تابع ($query) (
$this->query = $query;
$this->result = mysql_query($this->query, $this->link);
$this->err = mysql_error();
}
ردیف تابع () (
$this->data = mysql_fetch_assoc($this->result);
}
رفتن و آوردن() (
در حالی که ($this->data = mysql_fetch_assoc($this->result)) (
$this->fetch = $this->data;
بازگشت $this->fetch;
}
}
تابع stop() (
unset($this->data);
unset($this->result);
unset($this->fetch);
unset($this->err);
unset($this->query);
}
}

این فایل در حال حاضر فقط شامل یک کلاس اتصال ساده پایگاه داده است، اما در آینده می توانید توابع مفید مختلفی را به آن اضافه کنید که از هر کجای کد سایت در دسترس خواهند بود. فراموش نکنید که نام کاربری و رمز عبور خود را برای پایگاه داده خود تغییر دهید.

اگر روی یک محیط ویندوز کار می کنید، می توانم استفاده از . این ویرایشگر دارای شماره گذاری خطوط است و به راحتی متن را از یک رمزگذاری به کد دیگر ترجمه می کند. توجه! اگر در رمزگذاری UTF-8 کار می کنید - فایل ها را بدون BOM به UTF-8 تبدیل کنید - این به جلوگیری از مشکلات در آینده کمک می کند.

3. ایجاد index.php - کنترل کننده اصلی سایت

فایل پیکربندی ایجاد شده است. اکنون index.php را در پوشه ریشه سایت ایجاد می کنیم - این اسکریپت اصلی سایت خواهد بود، نوعی "کنترل کننده اصلی". محتویات فایل index.php:

define("INDEX"، ""); // تنظیم کننده CONSTANT اصلی

Require_once ($_SERVER."/cfg/core.php"); // هسته را وصل کنید

// اتصال به DB
$db = new MyDB();
$db->connect();

// کنترل کننده اصلی
سوئیچ ($_GET) (
مورد "صفحه":
include($_SERVER."/com/page.php");
زنگ تفريح؛
پیش فرض:
include($_SERVER."/com/home.php");
زنگ تفريح؛
}

شامل($_SERVER."/template.php");
$db->close();

متغیر $_GET به کنترل کننده اصلی می گوید که در صورت درخواست کدام جزء سایت را بارگیری کند. در حال حاضر سایت ما فقط دو جزء دارد: "صفحه" و "صفحه اصلی" (در اصل برای نمایش یک صفحه معمولی می توانید با یک جزء کنار بیایید، اما اغلب ظاهر صفحه اصلی سایت با صفحات معمولی متفاوت است. آیتم های منو). منطق کنترل کننده اصلی به این صورت است: نام مؤلفه مورد نیاز (مقدار متغیر $option) از رشته URL استخراج می شود، بسته به مقدار آن، فایل خود مؤلفه گنجانده شده است (حاوی در / پوشه com). فایل کامپوننت تمام کارهای لازم را انجام می دهد، داده ها را از پایگاه داده بازیابی می کند و آن ها را روی متغیرها می نویسد تا به قالب طراحی منتقل شوند. در نهایت فایل طراحی سایت متصل می شود که تمامی متغیرها و داده های استخراج شده در کامپوننت ها به آن منتقل می شود. این بسیار پیچیده تر از کار به نظر می رسد.

4. یک جزء خروجی صفحه معمولی ایجاد کنید

در ریشه سایت، یک پوشه "com" ایجاد کنید - فایل های جزء را ذخیره می کند. یک جزء سایت، در درک من، فایلی است که در آن داده ها برای بخش های مختلف سایت پردازش می شود. به عنوان مثال، جزء یک صفحه معمولی عنوان، توضیحات و متن مطالب را از پایگاه داده بازیابی می کند و آنها را در متغیرهای $title، $meta_d، $meta_k، $content و غیره می نویسد. سپس این داده ها به قالب طراحی (شما می توانید الگوی طراحی خود را برای هر جزء ایجاد کنید) و به عنوان یک صفحه HTML به کاربر نمایش داده می شود. به عنوان مثال، یک جزء کاتالوگ که می تواند در آینده ایجاد شود، تقریباً همان کار را انجام می دهد، اما با داده های مربوط به محصولات - و ویژگی های خاص خود، فیلدهای دیگر در جدول، و غیره وجود دارد. بنابراین، برای هر بخش عملکردی سایت، ارزش ایجاد یک جزء جداگانه را دارد. در طرح MVC (Model-View-Controller)، کامپوننت نقش یک مدل را ایفا می کند.

یک فایل "page.php" در پوشه "com" ایجاد کنید. محتویات فایل به شرح زیر است:

/* جزء صفحه */
$ مستعار = $_GET;
$query = "SELECT * FROM pages WHERE page_alias="".$alias."" AND page_publish="Y" LIMIT 1";
$db->run($query);
$db->row();
// متغیرهای مؤلفه
$id = $db->data;
$alias = $db->data;
$title = $db->data;
$h1 = $db->data;
$meta_d = $db->data;
$meta_k = $db->data;
$s_desc = $db->data;
$component = $db->data;
// اگر صفحه وجود نداشته باشد
اگر (!$id) (
header("HTTP/1.1 404 یافت نشد");
$component = "خطای 404! این صفحه وجود ندارد";
}
$db->stop();

5. مولفه نمایش صفحه اصلی را ایجاد کنید

صفحه اصلی در پایگاه داده ما با نام مستعار "خانه" ذخیره می شود و تاکنون از نظر ساختار با صفحات معمول سایت تفاوتی ندارد - این فقط یک مقاله است. با این وجود، ما یک جزء جداگانه برای آن ایجاد خواهیم کرد - به اصطلاح برای آینده.


محتوای کامپوننت "home.php" در پوشه "com" تقریباً با محتوای کامپوننت صفحه عادی است، به جز رشته کوئری به پایگاه داده و نام کامپوننت. رشته پرس و جو اکنون به شکل زیر است:

$query = "انتخاب * از wx_pages WHERE page_alias="home" LIMIT 1";

6. یک قالب طراحی برای کل سایت ایجاد کنید

یک فایل template.php در ریشه سایت ایجاد کنید. در واقع، این یک طرح بندی معمولی طراحی وب با فرمت HTML + CSS است، فقط با متغیرهای PHP در مکان های مناسب. درج بین تگ های عنوان، در ستون مرکزی درج سایتو بنابراین در سرتاسر قالب متغیرهای لازم را که در کامپوننت ها اعلام شده اند قرار می دهیم.

پوشه ریشه نیز باید دارای پوشه های "css" و "images" برای عناصر طراحی باشد. در فایل /css/style.css - می توانید استایل ها را به دلخواه شخصی سازی کنید.

7. پیوندها و فایل htaccess. را پاک کنید

برای ایجاد پیوندهای تمیز، من از mod_rewrite با دستورالعمل‌های مستقیم برای قوانین هر مؤلفه به طور جداگانه استفاده می‌کنم، زیرا تجزیه نوار آدرس با استفاده از کنترل‌کننده، عملکرد غیرضروری در نظر گرفته می‌شود. محتوای .htaccess در این مرحله عبارت است از:


بازنویسی موتور روشن
RewriteBase /

RewriteCond %(REQUEST_FILENAME) !-d
RewriteCond %(REQUEST_FILENAME) !-f

# فایل های ممنوعه
RewriteRule .htaccess - [F]
RewriteRule template.php - [F]

# mod_rewrite RULES
RewriteRule page/(+)([\/](0,1))\.htm$ index.php?option=page&alias=$1 [L]

در آینده، قوانینی را برای اجزای جستجو، کاتالوگ، وبلاگ مقالات و غیره اضافه خواهیم کرد. تنها یک نکته وجود دارد: تبدیل پیوندهایی مانند "mysite.com/index.php?option=pages&alias=about" به پیوندی مانند "mysite.com/pages/about.htm" - بسیار زیبا به نظر می رسد. در توسعه، سعی کنید به دلایل ایمنی از آرایه $_GET اجتناب کنید و به آن تکیه نکنید. توصیه می شود فقط پارامترهای کنترل کننده اصلی (متغیر $option) و کامپوننت (متغیر نام مستعار $) در آن ذخیره شود.

همچنین، در هر پوشه سایت، "فقط در مورد"، یک فایل index.html خالی ایجاد کنید - این لازم است تا هنگام دسترسی به دایرکتوری از طریق نوار آدرس، چیزی نمایش داده نشود.

برچسب ها: php ، mysql ، موتور سایت ، کنترل کننده ، ساخت سایت ، mvc

تعداد زیادی وب سایت در اینترنت وجود دارد. همه این سایت ها را می توان به دو نوع استاتیک و پویا تقسیم کرد. امروز در مورد ایجاد صفحات داینامیک صحبت خواهیم کرد، اما ابتدا می خواهم به شما بگویم که سایت (صفحه) ایستا و پویا چیست.

سایت های استاتیک

سایت های استاتیک از صفحات وب ثابت تشکیل شده اند. این بدان معنی است که هر کاری که کاربر انجام می دهد، صفحه همیشه یکسان به نظر می رسد. چنین صفحاتی به عنوان اسناد HTML در سرور ذخیره می شوند. صفحات استاتیک به صورت دستی تنظیم می شوند. اگر نیاز به تغییر محتوای یک صفحه دارید، باید کد HTML هر صفحه را ویرایش کنید.

مزایای:

  • سادگی و ارزانی ایجاد، بی نیازی به منابع سخت افزاری؛

ایرادات:

  • زمان زیادی که صرف ویرایش محتوا می شود؛
  • برای پروژه های بزرگ مناسب نیست.

سایت های پویا

سایت های پویا از صفحات وب پویا تشکیل شده اند که می توانند به اعمال و تغییرات کاربر پاسخ دهند. چنین صفحاتی توسط وب سرور از چندین فایل (قالب) تشکیل می شوند. تمام اطلاعات در یک پایگاه داده ذخیره می شود. هنگامی که یک کاربر صفحه ای را درخواست می کند، اطلاعات مربوطه از پایگاه داده بازیابی می شود، برای تشکیل صفحه وب در قالب درج می شود و توسط وب سرور به مرورگر کاربر ارسال می شود. بنابراین، هنگام به روز رسانی محتوای سایت، فقط باید متنی را برای صفحه جدید اضافه کنید، که سپس با استفاده از مکانیزم خاصی در پایگاه داده درج می شود.

مزایای:

  • مدیریت محتوا از طریق فرم های خاصی انجام می شود که در آن به راحتی می توانید اطلاعات را اضافه، ویرایش و حذف کنید.
  • حداکثر کارایی در هنگام افزودن محتوای جدید به سایت؛
  • هنگام افزودن یا ویرایش محتوا، هیچ دانش خاصی از مسترینگ وب (HTML، CSS) مورد نیاز نیست.
  • امکان ایجاد پروژه های چند منظوره بزرگ؛
  • فرصت های عالی برای ارتقا

ایرادات:

  • هزینه بالای ایجاد و نگهداری؛
  • برای حفظ عملکرد سایت باید دانش مناسبی داشته باشید.

اکنون فکر می کنم متوجه شده اید که بهتر است یک وب سایت با استفاده از صفحات پویا ایجاد کنید. بهترین و راحت ترین انتخاب است. خب حالا بیایید در مورد ایجاد صفحات پویا صحبت کنیم.

لینک های ساده

قبل از یادگیری زبان PHP، من فکر می کنم شما باید قبلاً HTML و البته ایجاد هایپرلینک را بدانید. من می خواهم به شما یادآوری کنم:

$link = "example.php"; چاپ"<а href = \"$link\">نمونه ای از یک هایپرلینک پویا.
\n"

ایجاد یک هایپرلینک پویا با استفاده از زبان php به همین سادگی است.

فرآیند ایجاد یک صفحه پویا

فرآیند ایجاد یک صفحه پویا شامل چندین مرحله است:

چیدمان قاب صفحه. بیایید صفحه را index.php بنامیم - از بخش هایی تشکیل شده است: سرصفحه (هدر)، پاورقی (پانویس)، منوی سمت چپ(منو سمت چپ). در این مثال، نحوه چیدمان یک صفحه مبتنی بر جدول را نشان می دهم، اما می توانید از یک block verst نیز استفاده کنید.

1. تشکیل پرونده header.php.

صفحه پویا در PHP.

سربرگ سایت


2. یک فایل تشکیل می دهیم leftmenu.php.

  • لینک 1
  • پیوند 2
  • لینک 3
  • لینک 4
  • لینک 5

3. یک فایل تشکیل می دهیم footer.php.

پاورقی سایت


یک پوشه به نام ایجاد کنید قالبکه فایل های حاصل را در آن کپی می کنید. اگر نیاز به ویرایش هدر، منوی سمت چپ یا فوتر سایت داشته باشید، می دانید که قالب های این قسمت های سایت در این پوشه قرار دارند.

بیایید فایل های دریافتی (الگوها) را با استفاده از عبارت include در مثال صفحه index.php به سایت متصل کنیم.

سلام!

این اولین صفحه پویا در PHP است.

به این صورت است که صفحه index.php یک صفحه پویا است، از چندین فایل (قالب) تشکیل می شود. شما می توانید هر تعداد از این الگوها را بسازید. در صورت نیاز به تغییر بخشی از سایت، کافی است فایل قالب مورد نظر را پیدا کرده و آن را ویرایش کنید.

این کار ایجاد صفحات پویا را کامل می کند. فکر می کنم معنی و کاربردی بودن سایت های داینامیک را درک کرده اید و بر اساس مثال من می توانید یک پروژه بزرگ ایجاد کنید. و فراموش نکنید که کد خود را نظر دهید - دوستان بسیار مهم است! موفق باشی!

P.S. تغییرات کوچک از 07/06/2019:

از آنجایی که برنامه نویسی همیشه در حال تکامل است، بنابراین باید با سرعت نور تکامل یابد. طرح جدولی نشان داده شده در بالا امروزه در عمل چندان مورد استفاده قرار نمی گیرد و فقط برای مطالعه توسط برنامه نویسان تازه کار ضروری است.

اگر می‌خواهید وب‌سایت‌های جدید و مؤثر ایجاد کنید، توصیه می‌کنیم به جای طرح‌بندی جدولی، از طرح‌بندی بلوک استفاده کنید. بیایید با جزئیات بیشتری در نظر بگیریم.

جداول به طور خاص برای نمایش داده های جدولی و نه برای علامت گذاری عناصر صفحه اختراع شده اند. آنچه در جدول آمده است:

متن

را می توان به عنوان یک طرح بلوکی (div) نشان داد:

متن

فضای دیسک بسیار کمتری را اشغال می کند.

مزایای طرح بلوک را در مقایسه با جدولی در نظر بگیرید:

  1. کاهش قابل توجه اندازه صفحه، معمولاً 2-3 برابر، که زمان بارگذاری وب سایت را به میزان قابل توجهی کاهش می دهد. در عین حال، حجم فایل کمی افزایش می یابد، اما با توجه به اینکه یک بار توسط مرورگر کاربر ذخیره می شود و هنگام دسترسی به صفحات دیگر از رایانه او خوانده می شود، در نتیجه سایت بسیار سریعتر از یک بارگذاری می شود. جدولی
  2. تغییر طراحی صفحات سایت ارائه شده در یک فایل CSS بسیار راحت تر است. در این حالت عملا نیازی به ویرایش کد - نیست.
  3. به لطف امکانات طرح بندی بلوک، می توان اطمینان حاصل کرد که محتوای اصلی صفحه ابتدا در کد قرار می گیرد و تنها پس از آن سربرگ، ستون های چپ و / یا راست. ظاهر صفحه به هیچ وجه تغییر نمی کند.
  4. شفافیت کد صفحه بلوک از نظر بصری خوشایند است - انبوهی از برچسب ها وجود ندارد، همه چیز بسیار زیبا و فشرده است.

ما فقط در مورد صفحات استاتیک صحبت کردیم، یعنی صفحاتی که بدون توجه به نحوه تعامل کاربر با آنها، همیشه بدون تغییر باقی می مانند و برای اینکه محتوا یا طراحی آنها تغییر کند، صاحب صفحه باید کد را به صورت دستی ویرایش کند.

صفحات داینامیک و نیازهای آنها

علاوه بر استاتیک، صفحات پویا نیز وجود دارد. اکثر آنها اکنون در اینترنت هستند. اطلاعات موجود در آنها از منابع خارجی مانند پایگاه داده یا فایل های دیگر بارگیری می شود. محتوا و قالب بندی چنین صفحاتی بسته به اقدامات کاربر ممکن است تغییر کند. برای ویرایش سایت های پویا، نیازی به تداخل در کد آنها نیست - کافی است محتوا را در یک فایل یا پایگاه داده مخصوص طراحی شده تغییر دهید، که به هر حال، آن نیز یک فایل است که فقط به روش خاصی ساختار یافته است.

برای ایجاد وب سایت های پویا، فقط HTML و CSS کافی نیست. همچنین از زبان های برنامه نویسی و همچنین پایگاه داده ها و زبان های پرس و جو برای آنها استفاده می کند. اغلب سایت های پویا مدرن در کار خود از HTML، CSS، PHP، JavaScript، SQL استفاده می کنند. دو علامت اختصاری اول از قبل برای شما آشنا هستند، SQL برای دسترسی به پایگاه‌های اطلاعاتی استفاده می‌شود، جاوا اسکریپت یک زبان سمت کلاینت است که دستورات آن توسط مرورگر پردازش می‌شود و اغلب برای نشان دادن انواع زیبایی‌ها مانند پرده‌ها یا عکس‌هایی که به آرامی باز می‌شوند، استفاده می‌شود. اما PHP یک زبان برنامه نویسی سمت سرور است که از جمله با محتوای سایت کار می کند و آن را پویا می کند، امروز با آن در تماس خواهیم بود.

نمونه ای از استفاده از دستور include

در مقاله قبلی در مورد طرح بندی بلوک سایت صحبت کردم و ساده ترین صفحه را به عنوان مثال (سند) ذکر کردم index.htmlو فایل مرتبط با آن style.css).

اکنون سند را تقسیم می کنیم index.htmlبه چندین فایل که هر کدام شامل قسمت مخصوص به خود از صفحه است که به جداسازی بیشتر کدها، بهبود ساختار قالب و در واقع پویایی صفحه کمک می کند. برای این منظور از زبان PHP یا بهتر است بگوییم تنها یکی از دستورات آن - تابع - استفاده خواهیم کرد عبارتند از()، که شامل یک فایل در فایل دیگر است.

1. مجوز فایل ایجاد شده در مقاله درباره طرح بندی بلوک را تغییر دهید فهرست مطالببا .htmlبر phpبرای نامگذاری سند index.php. نوع فایل پی اچ پیبه سرور نشان می دهد که سند نوشته شده است یا از درج هایی در زبان برنامه نویسی به همین نام استفاده می کند.

2. در پوشه با صفحه، یک دایرکتوری ایجاد کنید بلوک ها.

3. تمام اطلاعات پشتیبانی (بالا، پایین، ناوبری و نوار کناریسایت) فایل های جداگانه ای را خارج می کنیم که در پوشه قرار می دهیم بلوک ها.

بنابراین، چهار فایل را در فهرست بلاک ها ایجاد کنید: header.php, navigation.php, نوار کناری.phpو footer.php. فایل ها را با کد پر کنید.

4. ساختار پوشه الگو را بررسی کنید. فایل ها باید در روت باشند index.php, style.cssو دایرکتوری بلوک ها.

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

5. در پرونده index.phpکد موجود را حذف کنید و یک کد جدید بنویسید:

طرح بندی بلوک

محتوای صفحه اصلی

در مرورگر، فایل index.php دقیقاً مانند قبل است، اما ساختار قالب کاملاً تغییر کرده است. بعداً در مورد آنچه اتفاق افتاده صحبت خواهیم کرد و اکنون به سؤال در مورد دستورات مرموز فرم پاسخ خواهیم داد .

مانند کد HTML، کد PHP نیز تعیین شروع و پایان خاص خود را دارد. بنابراین، شما باید یک درج PHP را با دستور شروع کنید و با خط خاتمه دهید ?> . بین این دستورات کد اصلی نوشته می شود. در مورد ما، این فقط یک دستور است - عبارتند از.

تابع عبارتند از()کد را از یک فایل دیگر در فایل وارد می کند و امکان ذخیره قسمت های مختلف صفحه را در اسناد مختلف فراهم می کند و در نتیجه به طور قابل اعتماد آنها را از یکدیگر جدا می کند.

در نتیجه اقدامات انجام شده دریافت کردیم صفحه پویا index.php، که قسمت هایی از آن بارگیری می شود فایل های مختلف. به لطف این، می توانید صفحات دیگری را با بارگیری عناصر کمکی از پرونده های پوشه به همین روش ایجاد کنید. بلوک ها.

این روش خوب است زیرا اگر می خواهید نام یک آیتم منو را در یک سایت 20-30 صفحه تغییر دهید، سپس در قالبی با ساختار جدید ایجاد شده، باید فقط یک فایل - بلوک ها را تغییر دهید. /navigation.php، و منو بلافاصله در تمام صفحاتی که در آن گنجانده شده است تغییر می کند. اگر سایت ثابت بود، برای تغییر نام یک آیتم منو، باید تغییراتی در آن ایجاد کنید هراز 20 تا 30 صفحه تفاوت آشکار است.

 
مقالات توسطموضوع:
چگونه به بیت بودن سیستم عامل و پردازنده در ویندوز پی ببریم
پس از خرید یک لپ تاپ جدید یا مونتاژ یک کامپیوتر رومیزی، بسیاری از کاربران با این سوال مواجه می شوند: 32 یا 64 بیت، کدام سیستم را نصب کنیم؟ موضوع بسیار جالب است و در این نشریه ما با جزئیات تمام تفاوت های ظریف مربوط به آن را در نظر خواهیم گرفت
تبدیل از djvu به pdf
چگونه djvu را به pdf تبدیل کنیم تا متن سند تا حد امکان خوانا باقی بماند؟ برای انجام این کار، باید از برنامه ها و خدمات اثبات شده استفاده کنید، چنین اسنادی را می توان در رایانه، تلفن، تلفن های هوشمند مشاهده کرد، زیرا تعداد زیادی از آنها وجود دارد.
شبکه های cpa روسیه.  شبکه های CPA - چیست؟  برنامه های وابسته شبکه های CPA: رتبه بندی، توضیحات و بررسی.  شبکه های CPA چیست؟
تقریباً هر کاربر با کلمات ارزشمند CPA در اینترنت مواجه می شود، اما همه نمی دانند که چیست. در این مقاله به شما می گویم که CPA چیست و با چه چیزی خورده می شود و در اینجا همچنین با 13 شبکه برتر CPA در Runet آشنا خواهید شد. CPA و CPA چیست
وبلاگ نویسان یوتیوب چقدر درآمد دارند؟
بر کسی پوشیده نیست که یوتیوب به تدریج جایگزین تلویزیون شده است. این امر به ویژه در مورد جوانان امروزی صادق است. آنها نمی خواهند آنچه را که به آنها نشان داده می شود و به آنها تحمیل می شود از تلویزیون تماشا کنند. مردم خودشان انتخاب می کنند: چه چیزی، چه زمانی و چه کسی را باید تماشا کنند. کی اوه