جلسه اول آموزش عملی ساخت پروژه پنل وب سایت شخصی با PHP
جلسه اول آموزش عملی ساخت پروژه پنل وب سایت شخصی با PHP
متن در ابتدا خیلی کم ساختار ورود اطلاعات دیتابیس رو میگم و بعد سراغ لاگین کاربر و استفاده مجزا فایل نمایش و کد php و ریزه کاری هاش میریم و سشن و متغیر های سراسری رو مقدماتی آشنا میشید .
اول از همه بهتره بدونید فیلد های دیتابیس رو با ساختار خودتون درست کنید چون اول کار هستید بهتره و کار باهاشون راحت تره .
بهترین برنامه لوکال هاست ؛ easy php ورژن ۵.۳ رو میتونید نصب کنید.
برای مثال ساختار جدول دیتابیس مطالب رو به صورتی درست کنید که نوع تمام فیلد ها text باشه .
فیلد هایی که نیاز داریم برای مثال :
Writer - Date – id – subject – maintext
collation تمام این فیلد ها روی utf8_persian_ci بذارید بعدا میگم چرا و به چه کاری میاد ؛ این شد دیتابیس اول ما که به این صورت آماده کردیم .
و همینطور فیلد id رو از نوع int میذاریم و به صورت AUTO_INCREMENT تنظیمش می کنیم .
نکته :
دیتابیس های بعدی رو متناسب با کارمون در حین انجامش میسازیم تا از اتلاف وقت حین انجام پروژهجلوگیری کنیم ؛ چون ممکنه دیتابیس های ما تغییرات بخواد یا کلا از ساخت دیتابیسی منصرف بشیم این روش کمک میکنه تا از این اتلاف وقت ها و مشکلات جلوگیری بشه.
تا اینجا ؛ دیتابیس اصلی با فیلد های حدودی رو ساختم ) برای شروع پروژه ها باید به این صورت عمل کنید تا بعدا کم کم دیتابیس رو تکمیل کنید ( البته قبل از اینکه کد ها رو بزنیم باید دیتابیس رو نیازسنجی کنیم تا تغییرش بعدا خیلی سخت هم نشه .
تا اینجای کار دیتابیس اصولی رو ساختیم باقی موارد دیتابیس نیازی نیست با همین دیتابیس پایه کار رو شروع می کنیم در واقع توی php فیلد های نوع دیگر خیلی کاربرد ندارن و اکثرا برای استفاده از دستوراتی که از قبل بلدن از نوع text همه رو استفاده می کنند تا تغییرات دلخواه برای نمایش یا ذخیره رو هر زمان به راحتی روش اعمال کنند.
پس دیتابیس post رو با collation ؛ utf8_persian_ci طبق تصویر زیر ساختیم :
ت1
تیک A_I فیلد id رو فراموش نکنید.
مرحله بعدی ساخت صفحه لاگین و کار با توابع php برای ورود و خروج
توی این مرحله اول یک صفحه با نام admin.php درست کنید . دقت کنید کار کردن با فارسی توی php انقدر ها هم راحت نیست و ممکنه بعضی وقتا دردسر ساز بشه پس بعد از ساخت admin.php با نوت پد اونو باز کنید و save az بزنید و Unicode رو روی utf-8 قرار بدین اینطوری :
کد نویسی فایل admin.php رو شروع می کنیم در این فایل قراره که ورود ادمین رو بررسی کنیم و پنل کاربری اونو یهش نمایش بدیم در غیر اینصورت از ورودش و نمایش اطلاعات جلوگیری بشه ؛ در این بین نکاتی هست که میشه اونا رو به ورود تمام کاربران تعمیم داد پس اینو خوب یاد بگیرید که تعمیمش هم خیلی راحته و بعدا بهش اشاره می کنم .
توی فایل admin ؛ باید دو چیز رو تعریف کنیم یکی فایل نمایش فرم ورودی و یکی هم (متغیر جلسه) متغیر جلسه یا session چیه ؟
توی سایت ها همونطور که دیدید؛ در صورتی که در یک سایت لاگین کرده باشید و تب مربوط به اون سایت رو ببندید و دوباره وارد سایت بشید دیده میشه همچنان میتوانید بدون لاگین به حساب کاربری خود وارد بشید .
کاربرد سشن :
ما اطلاعات ورود هر کاربر رو در سشن ذخیره می کنیم و این یک متغیر عمومی در php است به این صورت که php خودش اطلاعات اونو به صورت مخصوص رمزنکاری می کنه پس هر کسی سشن شما رو بدزده که مثلا بتونه وارد پنل شما در سایت بشه چون اطلاعات داخل اون رمزنگاری شده و همچنین شما هم اطلاعات متمایز با اطلاعات سشن دارید بنابر این اجازه ورود به شما نمی دهد.
ما با سشن چکار می کنیم ؟
ما اطلاعات کاربری که می خواهد وارد شود را در صورت صحیح بودن اطلاعات ورودش در سشن قرار می دهیم و در هر جایی که نیاز بود لاگین بودن کاربر رو چک کنیم در واقع از سشن کمک می گیریم .
در ادامه درون فایل admin منطق ورود رو درست می کنیم :
۱- کد های php درون دو عبارت به شکل زیر نوشته می شوند
<?php
//code
?>
برای بررسی ورود کاربر و نوشتن عبارات منطقی در فایل ادمین درون قالب بالا درست بودن اطلاعات کاربر را بررسی می کنیم سپس متناسب با درست بودن یا غلط بودن کد مخصوصش رو می نویسیم.
۲- بعد از چک کردن اطلاعات ورود کاریر در صورت درست بودن اونو توی سشن ؛ رجیستر می کنیم و از این به بعد می تونیم لاگین بودن یا نبودن کاربر رو چک کنیم .
اول از همه فایل html استایل صفحه ورود رو درست می کنیم یه فایل با اسم login.html درست کنید فرم ورود رو توش بسازید.
نکته :
یه کدی رو هیچوقت فراموش نکنبد قرار بدین این کد از بروز مشکلات نمایش متن فارسی جلوگیری می کنه.
<head>
<meta charset="UTF-8">
</head>
در ادامه باید فایل صفحه ورود رو هر طور که دوست دارید آماده کنید :
محتویات فایل login.html به صورت زیر است .
دقت کنید که مثل فایل admin.php انکد این فایل رو هم روی utf-8 قرار بدین. برای توضیح کد بالا با فرض اینکه آشنایی ندارید میتونم بگم ؛ برای اطلاعاتی که میخواهیم به صفحه php ارسال کنیم باید یک فرم مثل فرم بالا طراحی بشه : دو تا آپشن اصلی داره فرم ما یکی متد و دیگری اکشن می باشد . در متد مشخص می شود که اطلاعات چگونه ارسال شود که دو حالت دارد.
get و post
اگر get رو انتخاب کنید اطلاعات در آدرس و قابل مشاهده برای کاربر ارسال می شود و post برعکس get عمل میکنه در واقع زمانی که اطلاعاتی پست می شود ، اطلاعات از طریق پروتکل http ارسال شده و به صورتی که قابل مشاهده و تغییر نمی باشد ارسال خواهد شد ، پس برای اینکه کاربران و کسانی که احتمالا قصد تخریب دارند نتوانند اطلاعات را در آدرسی که ارسال می کنید مشاهده کنند ، لازم است تا اطلاعات را به صورت پست ، ارسال کنید . مزیت دیگر پست این است که آدرس خلوت تر می شود ، البته سایت هایی مانند گوگل اطلاعات اضافی را که ممکن است شامل اطلاعات مرورگر شما ، صفحه ای که از آن وارد شده اید ، ساعت و غیره را داخل آدرس ارسال می کنند . ارسال اطلاعاتی مانند ای دی کاربر باید به صورت پست باشد چرا که امنیت آن اهمیت دارد و نباید جلوی چشم و قابل تغییر باشد .
اکشن:
برای اکشن آدرس فایل دریافت کننده اطلاعات رو وارد کنید و اگر آدرس همین پیج جاری بود خالی بذارید؛ در اینجا توضیح میدم که با اینکه اطلاعات نیاز دارن تا به admin.php ارسال بشن پس چرا اکشن رو خالی گذاشتیم . در مرحله بعد روی فایل admin.php تغییرات رو اعمال میکنیم.
نکته :
با دو فایل کردن قسمت ورود در واقع نمایش رو از کد ها جدا کردیم و کد های تمیزتری مینویسیم. داخل فایل admin.php به صورت زیر عمل می کنیم :
برای توضیح کد بالا :
اول چک می کنیم که input هایی که با نام های username و password ساخته بودیم ارسال شده اند یا خیر با اینکار از خطای ناخواسته جلوگیری می کنیم ؛ اگر مستقیما محتویات آن را چک می کردیم در صورتی که متغیر های آن ساخته نشده بودند ؛ به ما خطا میداد که وجود ندارد. بنابر این برای چک کردن آن ها از متغیر های سراسری $_POST استفاده کردیم این کاراکتر ها باید حتما به صورت بزرگ نوشته شوند و به صورتی که در کد میبینید استفاده شوند.
تابع isset در php به این درد میخوره که قبل از استفاده از یم متغیر چک بکنیم ببینیم ساخته شده یا نه تا از خطاهای احتمالی جلوگیری کنیم ورودی این تابع متغیر رو دریافت میکنه و خروجی true یا false بر میگردونه که اگر داخل یک شرط بنویسیم isset($_POST[‘example’]) اگر خروجی true باشد شرط هم درست میشود ؛ یعنی اگر متغیر $_POST[‘example’] درست شده باشه یا به عبارتی کاربر فرم را ارسال کرده باشد بنابر این این متغیر درست شده است پس میتوان محتویات آن را جهت درست یا نادرست بودن چک کرد.
در توضیحات بالا دید که بررسی کردیم و مطمئن شدیم پسورد و نام کاربری را دریافت کردیم حال اگر نادرست بود : باید پیغام مناسب به کاربر نمایش داده شود و دوباره همان صفحه ورود نمایان شود ؛ پس باید از include استفاده کنیم ) این دستور در php فایلی رو که در هاست ما قرار داشته باشه فراخوانی میکنه و باعث میشه تا اون فایل و محتویات آن هم جزئی از فایل اصلی ما محسوب شود( به این صورت که محتویات صفحه نمایش فرم لاگین ما ( login.html ( کل کد های نمایشی را در قسمتی که اینکلود شده قرار می دهد. پس ابتدا درستی یا نادرستی کلمه عبور رو مشخص می کنیم و اگر درست بود که باقی ماجرا و کد های ما و اگر نادرست بود ابتدا پیغام مناسب و دوباره صفحه لاگین جهت ورود دوباره اطلاعات نمایش داده می شود. در غیر این صورت انتهای کد هم به معنی آن است که فرم لاگین ارسال نشده پس نیازی به بررسی چیزی نیست و فقط میتوان به نمایش فرم لاگین قناعت کرد. جلسه بعدی سشن ها رو مفصل توضیح میدم و نحوه رمزنگاری داده ها و اطلاعات ورود و ... شرح میدم و ورود کاربر و پنل کاربری رو کامل می کنیم.
- توضیحات
- بازدید: 1443
نظرات
- هیچ نظری یافت نشد.
نظر خود را اضافه نمایید
ارسال نظر به عنوان مهمان