نمایش نتایج 1 تا 3 از 3

نام تاپیک: فیلتر کردن مقادیر ورودی(GET) برای استفاده در دستورات SQL

  1. #1
    کاربر دائمی آواتار ali reza mansoori 2
    تاریخ عضویت
    تیر 1387
    محل زندگی
    پشت کامپیوتر
    پست
    732

    فیلتر کردن مقادیر ورودی(GET) برای استفاده در دستورات SQL

    سلام دوستان
    یه مقدار دارم که توسط GET باید ارسال بشه و داخل صفحه ای که دریافتش میکنم یه کوئری اجرا میشه
    "`profi` LIKE %" . quote_smart($_GET['text']) . "%)"

    و تابعی که استفاده میکنم این هستش
        function quote_smart($value){        if(!is_numeric($value)) {            if(get_magic_quotes_gpc()) $value = stripslashes($value);            return "'" .mysql_real_escape_string($value) . "'";        }        else            return $value;    } 


    خروجی مثل زیر میشه که اشکال داره
    %'salam'%

    حالا سوال من اینه که وقتی که دارم از LIKE در دستورات SQL استفاده میکنم و در کد نویسی دو طرف مقدار ورودی % اضافه میکنم نیازی هست که از تابع quote_smart استفاده کنم یا نه
    برای امنیت مشکلی پیش نمیاد

  2. #2
    کاربر دائمی آواتار Yousha
    تاریخ عضویت
    مهر 1387
    محل زندگی
    ایران - تهران
    پست
    515

    نقل قول: فیلتر کردن مقادیر ورودی(GET) برای استفاده در دستورات SQL

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

    function quote_smart($value)
    {
    if(!is_numeric($value))
    {
    if(get_magic_quotes_gpc()) $value = stripslashes($value);
    if (function_exists('mysql_real_escape_string')) return mysql_real_escape_string($value);
    else return mysqli_real_escape_string($value);
    }

    return $value;
    }
    آخرین ویرایش به وسیله Yousha : یک شنبه 23 شهریور 1393 در 19:00 عصر

  3. #3

    نقل قول: فیلتر کردن مقادیر ورودی(GET) برای استفاده در دستورات SQL

    تابع get_magic_quotes_gpc که خودش باگ داره و قابل دور زدن هست

    از تابع htmlentities و strip_tags استفاده کنید

    و برای امنیت بیشتر و منعطف تر از پروژه ی html purifier استفاده کنید

    برای ذخیره در دیتابیس هم تابع mysql_real_escape_string که deprecated شده بجاش میتونید از mysqli یا از تابع فانکشن prepare در PDO استفاده کنید

    برای اموزش هر کدومشونم سرچ کنید یا توی انجمن سوالتون رو مطرج کنید

تاپیک های مشابه

  1. حرفه ای: جمع کردن مقادیر ورودی دو تکست بوکس
    نوشته شده توسط gohari244 در بخش ابزارهای گزارشگیری در VB6
    پاسخ: 1
    آخرین پست: چهارشنبه 27 بهمن 1389, 13:52 عصر
  2. چک کردن مقادیر ورودی به صورت کلاینتی
    نوشته شده توسط آرام جان گل در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: چهارشنبه 28 بهمن 1388, 10:59 صبح
  3. کار با commandbuilder برای استفاده از دستورات SQL
    نوشته شده توسط yashardevilfish در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 3
    آخرین پست: سه شنبه 14 آبان 1387, 14:58 عصر
  4. پیدا کردن مقادیر H& برای مقداردهی به constها
    نوشته شده توسط A.Farzin در بخش برنامه نویسی در 6 VB
    پاسخ: 5
    آخرین پست: دوشنبه 24 دی 1386, 08:37 صبح
  5. فیلتر کردن کارکترهای ورودی در textbox
    نوشته شده توسط bpzone در بخش C#‎‎
    پاسخ: 1
    آخرین پست: شنبه 27 مرداد 1386, 10:11 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •