نقطه ویرگول;

هر از گاهی از هر چیزی

هر از گاهی از هر چیزی

اعتبار سنجی در PHP

پنجشنبه, ۲۳ دی ۱۳۸۹، ۰۴:۳۰ ب.ظ
در این مثال ما قصد نداریم بگیم که این اعتبار سنجی دیگه آخرشه،بلکه این یه مثال برای سطوح مقدماتی و متوسط میباشد که چگونگی کار با فرم ها و آرایه های فرمی در پی اچ پی را آموزش میدهد.هر چند بسیاری از تکنیک های پیشرفته و خاص پی اچ پی وجود دارد که میتوانیم آنها را در این اسکریپت استفاده کنیم با این حال هدف این مقاله این نیست.
اولین چیز ساخت یک فرم با تگ های  اچ تی ام ال و متغیرهای پی اچ پی میباشد.این صفحه فرم و تمامی خطاهایی که ممکن است در پر کردن یک فرم رخ دهد را نشان میدهد.

//این صفحه رو با اسم ایندکس.پی اچ پی سیو کنید
// index.php
?>


PHP Form Processing Example




Name:*



Email:*



URL:*



Company:







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

// process.php
/*
*  در اینجا اسم فیلدهایی که در فرم وجود داشتن مشخصی میشود
*  این بدان معنی است که کسی هر چی میخواد نمی تونه سند کنه
*/
$allowedFields = array(
'Name',
'Email',
'URL',
'Company',
);
/*
مشخص کردن فیلدهایی که مورد نیاز هستن و باید پر بشن
میتونید بنا بر نیازتون این فیلدها را کم یا زیاد کنید
*/
$requiredFields = array(
'Name',
'Email',
'URL',
);
/*
در اینجا مقدارهایی که از طریق
$_POST
ارسال میشه رو در یه حلقه فور ایچ برا استفاده قرار میدیم
*/
$errors = array();
foreach($_POST AS $key => $value)
{
// اولین گام این است که مطمئن شوید که مقدار ارسالی یک فیلد مجاز بوده یا نه
if(in_array($key, $allowedFields))
{
$$key = $value;
//آیا یک فیلد الزامی و مورد نیسلز هست یا نه؟
if(in_array($key, $requiredFields) && $value == '')
{
$errors[] = "The field $key is required.";
}
}
}
// آیا اصلا هیچ خطایی رخ داده است
if(count($errors) > 0)
{
$errorString = '

There was an error processing the form.

';
$errorString .= '
    ';
    foreach($errors as $error)
    {
    $errorString .= "
  • $error
  • ";
    }
    $errorString .= '
';
// اگه خطایی وجود داشت  به صفحه فرم برو و خطاها را نشان بده
include 'index.php';
}
else
{
// در این مرحله شما میتونید یک ایمیل یا هر چیزی که میخواهید رو به کاربر ارسال کنید
//اگه اطلاعات صحیح بود به صفحه دل خواهتان هدایت کنید
header("Location: thanks.html");
} در اینجا شما نیاز به یک صفحه تشکر دارید که بعد اینکه اطلاعات صحیح بود به اون صفحه منتقل بشه،در زیر یک نمونه اچ تی ام الی برای این کار آماده کردیم.کد زیر را در فایلی به نام  thanks.html قرار بدید.
br />
"http://www.w3.org/TR/html4/strict.dtd">



Thanks!


Thank you for sending the form!



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

نظرات  (۵)

ممنون
ساده و کاربردی
۲۴ دی ۸۹ ، ۱۴:۵۷ مهدی هنرمند جوان
پی دی اف ندارد؟!
۲۴ دی ۸۹ ، ۱۵:۰۱ مهدی هنرمند جوان
با یکی از مقالات همایش اشتباه گرفتم می بخشید
سلام
لطف کنید درباره دستور ((if(in_array($key, $allowedFields بیشتر توضیح بدید مثلا in_array از کجا آمده و معنی این متغییر در این دستور شرطی چی هست
باتشکر
سلام دوست من
in_array بررسی میکنه میبینه مقدار key در آرایه allowFields وجود داره یا نه،متغییر نیس یه دستور
اگه وجود داشت دستورات بعدی رو اجرا میکنه
موفق باشید

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی