• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
چک کردن ورودی بدون استفاده از عبارات باقاعده
#1
Thumbs Up 
امروز یه مقاله ی خیلی جالب پیدا کردم در مورد ولیدیت ورودی ها با استفاده از php
گفتم اینجا بنویسم تا بقیه هم شاید به دردشون بخوره.

معمولا برای چک کردن صحت ورودی (مثلا ایمیل) از عبارات با قاعده استفاده می شه.
به این کد یه نگاه بندازین:
کد پی‌اچ‌پی:
$filter "^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$";
if (!
eregi($filter$user_email)) {
    echo 
"Invalid e-mail address.";


اما در این روش با استفاده از توابع خود php این کار رو انجام می دیم.
برای چک کردن ایمیل از این روش می تونید استفاده کنید.
ببینید:
کد پی‌اچ‌پی:
if (!filter_var($user_emailFILTER_VALIDATE_EMAIL)) {
    echo 
"Invalid e-mail";


برای چک کردن صحت url هم می تونید از این روش استفاده کنید:
کد پی‌اچ‌پی:
$user_url "google.be";        // Requires input with 'http://'
if (!filter_var($user_urlFILTER_VALIDATE_URLFILTER_FLAG_SCHEME_REQUIRED)) {
    echo 
"Invalid URL";


البته باید دقت کنید که ورودی حتما باید با http باشه.

این مثال هم جالبه:
کد پی‌اچ‌پی:
// $user_int: the tainted input string, which needs cleansing
// $sanitized_int: the input string, stripped from anything but numbers and operators
$user_int "1+7-3=5 and then do - 5 + 4 which equals: 4";
$sanitized_int filter_var($user_intFILTER_SANITIZE_NUMBER_INT);
 
// Results in: 1+7-35-5+44 

لینک سایت مرجع:
http://mattiasgeniar.be/2009/02/07/input...pressions/
همه جوره اش رو داریم ظاهرن
  پاسخ


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان