اعتبارسنجی اطلاعات در کیک پی اچ پی

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

در ساده ترین حالت می تونید برای فیلدهای موردنظرتون که توی جدول تعریف کردید و مقدارش براتون مهم هست یک نوع رو مشخص نمایید

class User extends AppModel{

	var $name='User';

	var $validate=array(
	'username'=>'alphaNumeric',
	'password'=>'alphaNumeric',
	'email'=>'email'
	);
}

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

همچنین شما می تونید پیغام هایی که برای هر قسمت نمایش داده می شوند رو تعیین کنید ، برای این کار به شکل زیر عمل کنید

class User extends AppModel{

	var $name='User';

	var $validate=array(
	'username'=>array('rule'=>'alphaNumeric','message'=>'نام کاربری معتبر نیست'),
	'password'=>array('rule'=>'alphaNumeric','message'=>'رمز عبور معتبر نیست'),
	'email'=>array('rule'=>'email','message'=>'پست الکترونیکی معتبر نیست')
	);
}

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

در کیک پی اچ پی این امکان هم وجود داره که شما خودتون یک pattern خاص بنویسید تا مقدار فیلد بر اساس اون چک بشه برای این کار کافیه که فقط pattern دلخواه تون رو به فیلد مورد نظر نسبت بدید

class User extends AppModel
{
	var $name='User';
	var $useTable='users';
	var $validate=array(
	'username'=>array('rule'=>'/[a-z0-9\-]{3,15}/i','message'=>'نام کاربری معتبر نیست'),
	'password'=>array('rule'=>'/[a-z0-9\-]{6,20}/i','message'=>'رمز عبور معتبر نیست'),
	'email'=>array('rule'=>'/[a-z0-9._\-+]+@[a-zA-Z0-9.\-]+.[a-zA-Z.]+/i','message'=>'پست الکترونیکی معتبر نیست')
	);
}

برای اینکه یک فیلد رو از چند نظر مورد بررسی قرار بدید کافیه که یک آرایه چند بعدی برای اون فیلد تعریف کنید

class User extends AppModel
{
	var $name='User';
	var $validate=array(
		'username'=>array(
			'alphaNumeric'=>array('rule'=>'alphaNumeric','message'=>'نام کاربری معتبر نیست'),
			'maxLength'=>array('rule'=>array('maxLength',5),'message'=>'حداکثر طول نام کاربری باید ۵ کاراکتر باشد')
		),
		'password'=>array('rule'=>'alphaNumeric','message'=>'رمز عبور معتبر نیست'),
		'email'=>array('rule'=>'email','message'=>'پست الکترونیکی معتبر نیست')
	);
}

برای اطلاعات بیشتر در این مورد این صفحه رو بخونید.

همچنین برای تعیین اینکه یک الگو یا pattern در زمان افزودن رکورد چک بشه یا بروزرسانی رکورد می تونید به شکل زیر عمل کنید

class User extends AppModel
{
	var $name='User';
	var $validate=array(
		'username'=>array(
			'alphaNumeric'=>array('rule'=>'alphaNumeric','message'=>'نام کاربری معتبر نیست','on'=>'create'),
			'maxLength'=>array('rule'=>array('maxLength',5),'message'=>'حداکثر طول نام کاربری باید ۵ کاراکتر باشد','on'=>'update')
		),
		'password'=>array('rule'=>'alphaNumeric','message'=>'رمز عبور معتبر نیست','on'=>'update'),
		'email'=>array('rule'=>'email','message'=>'پست الکترونیکی معتبر نیست')
	);
}

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

موفق باشید


تا كنون ۱۰ نظر برای اين پست ثبت شده است


  1. مرتضا گقته :

    سلام
    ممنون . مثل همیشه عالی

    ۲۹ فروردین ۱۳۸۹ در ۵:۱۶ ب.ظ

  2. مریم گقته :

    سلام
    من تازه با سایت شما آشنا شدم واقعا خوب هستید

    ۳۱ فروردین ۱۳۸۹ در ۱۰:۲۹ ق.ظ

  3. اللهیار گقته :

    سلام خوشحال هستم پست هات رو بردی طرف کیک ایشاا.. روزی که همگی با هم بخوریمش :)

    ۱۱ خرداد ۱۳۸۹ در ۱۲:۳۲ ب.ظ

  4. morteza گقته :

    نمی دونم یهو چی شده همه با هم رفتن سراغ کیک

    ۱۵ خرداد ۱۳۸۹ در ۸:۵۸ ب.ظ

  5. مسعود گلچین گقته :

    سلام ، خیلی عالی بود , چیزی بیشتر از این نمی تونم بگم :d

    ۲۰ خرداد ۱۳۸۹ در ۲:۰۱ ب.ظ

  6. سید امیر گقته :

    سلام
    عالی بود. متشکر

    ۱۱ شهریور ۱۳۸۹ در ۴:۲۱ ق.ظ

  7. طراحی سایت گقته :

    با سلام
    عالی بود…استفاده کردیم.

    ۱ آبان ۱۳۸۹ در ۴:۳۶ ب.ظ

  8. فرهاد گقته :

    عالی بود.
    ممنون

    ۲۸ تیر ۱۳۹۰ در ۲:۴۲ ب.ظ

  9. میثم گقته :

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

    ۲۰ مرداد ۱۳۹۱ در ۴:۱۸ ب.ظ

  10. لیلا گقته :

    عالی بود.ممنون از زحماتتون
    ادامه بدید خواهشا

    ۱۱ مهر ۱۳۹۱ در ۱:۲۰ ب.ظ