اعتبار سنجی فرم در php

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

 

 

مثال آموزشی برای اعتبارسنجی فرم

برای درک بهتر نحوه اعتبارسنجی فرم در php ، یک مثال کاربردی ارائه می کنیم. برای شروع کار یک فرم html طراحی کرده و محدودیت هایی را برروی فیلدها اعمال می کنیم.

 

ساخت فرم در html

ساخت فرم در html مرحله اول کار ماست. در آموزش های قبلی بطور کامل با نحوه ساخت فرم در php آشنا شدیم. در طراحی فرم این فیلدها را قرار می دهیم: نام، ایمیل، وبسایت، نظرات و جنسیت. حال یکسری محدودیت ها برای اعتبارسنجی داده های واردشده در فیلدها تعیین می کنیم:

  • فیلد نام: الزامی است و تنها با حروف الفبا و خط فاصله مقداردهی شود.
  • فیلد ایمیل: الزامی است و باید بصورت فرمت ایمیل باشد یعنی حاوی علامت های @ و . باشد.
  • فیلد وبسایت: اختیاری است و مقدار وارد شده باید به فرمت URL باشد.
  • فیلد نظرات: اختیاری است و تنها فرمت متن را می توان وارد کرد و محدودیتی زیادی برای تعداد کاراکتر ندارد.
  • فیلد جنسیت: الزامی است و یکی از دو گزینه موجود را باید انتخاب کند.

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

همانطور که مشاهده می کنید برای فیلدهای نام، ایمیل و وبسایت از نوع داده ای text استفاده شده، برای فیلد نظرات از textarea استفاده کردیم چون تعداد کاراکترهای ورودی بیشتر است و برای فیلد جنسیت از radio استفاده کردیم و دو مقدار زن و مرد را برای آن تعیین کردیم.

کد استفاده از فرم html در php ، به صورت زیر است:

مانطور که ملاحظه می کنید، متد ارسال اطلاعات در این فرم POST است و از یک متغیر سوپرگلوبال SERVER_$ استفاده شده است. این متغیر داده های مربوط به عناوین، محل دستور و مسیرها را در خود نگهداری می کند. از تابع htmlspecialchars برای متغیر SERVER_$ استفاده کردیم که در بخش های به بررسی کاربرد آن می پردازیم.

نکته قابل توجه در این کد این است که از دستور PHP_SELF استفاده کرده ایم. این دستور به هکرها کمک می کند که بتوانند در قسمت address bar مرورگر، کدهای XSS خود را بعد از یک علامت / در ادامه آدرس تایپ کنند. شاید بپرسید کدهای XSS چیست؟ در ادامه به این سوال پاسخ خواهیم داد.

 

کد ریدایرکت در php

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

 

کد Redirect در php

Redirect در php تابعی است که کاربر را از یک صفحه به صفحه ای دیگر انتقال می دهد. مثلا برای انتقال کاربر از صفحه اصلی به صفحه ثبت نام شما نیاز دارید که تابع ریدایرکت را استفاده کنید. برای درک کامل نحوه کار با این تابع قصد داریم یک مثال از نحوه کار آن را بررسی کنیم. نحوه استفاده از تابع Redirect در php به صورت زیر است:

این دستور یک کد کامل برای عمل ریدایرکت در php است که در شرایط مختلف کاربرد دارد. در ادامه به بررسی این کد می پزدازیم.

 

 

انتقال به صفحه دیگر در php

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

مشکل دستور header در php

مشکل دستور header در php زمانی رخ می دهد که هدر قبلا ارسال شده باشد و در صورت استفاده از دستور header هشدار “header already sent” را دریافت کنیم. می توان گفت تمامی برنامه نویسان حداقل یکبار با این پیغام روبرو شده اند. یک راه برای حل این مشکل استفاده از دستورات جاوااسکریپت است.

 

 

انتقال به صفحه دیگر در جاوا اسکریپت

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

آموزش صفحه بندی مطالب در php

آموزش صفحه بندی مطالب در php یکی از مباحث پرکاربرد در زبان برنامه نویسی php است. صفحه بندی مطالب به بهبود تجربه کاربری یا همان UX سایت کمک شایانی می کند. در این پست قصد داریم به آموزش صفحه بندی مطالب در php بپردازیم.

 

صفحه بندی اطلاعات دیتابیس

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

 

مراحل ایجاد صفحه بندی

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

  1. ایجاد جدول و پایگاه داده
  2. ثبت رکوردها در جدول
  3. ایجاد ارتباط با پایگاه داده
  4. ساخت لینک صفحه بندی و اضافه کردن آن به جدول
  5. دریافت داده از پایگاه داده

 

 

مثال اول: نمایش حروف الفبا در چند صفحه

در اولین مثال از آموزش صفحه بندی در php، می خواهیم یکسری رکوردهای حروف الفبا را در چند صفحه نمایش دهیم. مراحل گفته شده در بالا را یک به یک بررسی می کنیم.

 

ساخت پایگاه داده در mysql

ساخت پایگاه داده در mysql اولین کاری است که باید انجام دهیم در بخش آموزش پایگاه داده نحوه ساخت پایگاه بوسیله کدنویسی را بررسی کردیم. اما در این بخش می خواهیم ساخت پایگاه داده در mysql را با کمک ابزار phpmyadmin انجام دهیم. توسط این ابزار یک پایگاه داده با عنوان pagination ساخته و جدولی بنام alphabet برای آن ایجاد می کنیم. در تصویر زیر

این کد شماره صفحه ای که اکنون کاربر در حال مشاهده آن است را مشخص می کند و در صورتی که موجود نباشد مقدار پیشفرض ۱ را برای شماره صفحه تنظیم می کند.

 

 

تعیین فرمول صفحه بندی

مهم ترین قسمت از آموزش صفحه بندی در php مربوط به تعیین فرمول هاست. نحوه چیدمان رکوردها در صفحات براساس نوع داده و حجم اطلاعاتی داده ها متفاوت است ولی انتخاب شیوه مناسب چینش رکوردها بسیار اهمیت دارد. در این مثال ما قصد داریم در هر صفحه ۱۰ رکورد قرار دهیم. بنابراین به سه صفحه به شرح زیر نیاز داریم:

صفحه‌ی ۱ – A تا J: از ۱ تا ۱۰

صفحه‌ی ۲ – K تا T: از ۱۱ تا ۲۰

صفحه‌ی ۳ – U تا Z: از ۲۱ تا ۲۶

نحوه نوشتن فرمول صفحه بندی بصورت زیر است:

ویژگی های php8 امکانات نسخه جدید php

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

 

Php 8 چیست؟

Php 8 چیست ؟ و چه مزیت هایی دارد؟ سوالی که شاید شما هم بعد از شنیدن مکرر این نام از زبان برنامه نویسان از خود پرسیده باشید. در پاسخ به این سوال باید بگوییم php 8 آخرین نسخه از زبان برنامه نویسی php است که در ۲۶ نوامبر ۲۰۲۰ ارائه شد. برخی امکانات در این نسخه برای رفع ایرادات مهم نسخه های قبلی ارائه شده است. همچنین یکسری ویژگی های php 8  ، جدید هستند و امکانات جذابی را به این برنامه اضافه کرده اند. در ادامه به بررسی برخی از مهم ترین ویژگی های ۸ php می پردازیم برای اینکه بهتر متوجه شوید که امکانات جدید php 8 چیست تا انتهای این مقاله با ما همراه باشید.

 

Union types

یکی از جذاب ترین ویژگی های php 8 ، قابلیت Union types است که به شما امکان می دهد که برای پارامتر ورودی یک تابع بیش از یک نوع داده را مشخص کنید. مثلا:

 

کامپایلر jit

کامپایلر jit یکی دیگر از ویژگی های php 8 است که باعث بهبود عملکرد می شود. بطور خلاصه می توان گفت کامپایلر jit برپایه just in time است و بجای اینکه اول کدها را کامپایل کند و سپس اجرا کند، ابتدا کدها را اجرا کرده و سپس کامپایل می کند. با کمک این کامپایلر شما دیگر نیازی به مترجم نخواهید داشت. این مسئله باعث اجرای سریعتر کدها و بهبود کارایی می شود. اگرچه باید اشاره کنیم که این کامپایلر مستقیما تاثیری روی سرعت پروژه های php نخواهد گذاشت.

 

اپراتور null safe

اکنون می خواهیم در مورد یکی دیگر از ویژگی های php 8 بنام اپراتور null safe صحبت کنیم. در نظر بگیرید می خواهیم یک متد را صدا زده و بررسی کنیم که در صورتی که مقداری داخل آن بود از آن مقدار استفاده کند و اگر مقداری نداشت از null استفاده کند. مثال زیر چنین حالتی را نشان می دهد.

دریافت اطلاعات از دیتابیس در php

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

 

پیش نیاز آموزش

برای شروع آموزش نحوه گرفتن اطلاعات از دیتابیس در php قصد داریم یک مثال را آماده کرده و تا انتهای آموزش مراحل را روی آن اجرا کنیم. پس آنچه که شما به آن نیاز دارید در ابتدای کار، یک پایگاه داده بنام myProject بسازید. سپس جدولی بنام users را داخل آن ایجاد کنید. برای جدول چهار ستون به نامهای id, username, email و age طراحی کنید و یکسری رکوردهای دلخواه در آن اضافه کنید. تمامی این مراحل را میتوانید طبق آموزش های بخش آموزش کار با پایگاه داده پیش ببرید. پس از آن باید سه فایل بسازید به نام های process.php, config.php و index.php.

فایل config.php کدهای اتصال با پایگاه داده را در خود نگه می دارد. فایل process.php کدهای مربوط به دریافت داده از پایگاه است و index.php نیز نمایش داده های دریافت شده را برعهده دارد.

 

 

اتصال به دیتابیس در php

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

در خط اول تابع include_once کار اضافه کردن فایل را انجام داده است. استفاده از once به این معناست که این فایل فقط یکبار داخل process.php به اصطلاح include می شود. در ادامه کد تابعی با نام getALLUsers تعریف کرده ایم که تمامی رکوردهای داخل جدول users را برای ما استخراج کند. انتخاب متغیر db از نوع گلوبال برای این است که به ما امکان می دهد از این متغیر برای اتصال استفاده کنیم. به این نکته دقت داشته باشید که db یک متغیر داخل فایل config.php است و ما میخواهیم از آن در فایل process.php استفاده کنیم.

پس از گرفتن اطلاعات از دیتابیس در php،آنها را در یک متغیر stmt قرار داده ایم و پس از آن این متغیر را execute می کنیم. تابع execute کوئری های ما را اجرا کرده و به عنوان خروجی بوسیله تابع fetchALL آنرا return می کنیم. تابع fetchALL شامل تمامی رکوردهایی است که از دیتابیس خوانده شده اند. عبارت PDO::FETCH_OBJ در داخل این تابع باعث می شود که خروجی ارسال شده از دیتابیس در قالب یک شی به ما داده شود.