/
  • مشکل در استخراج اطلاعات از جدول - حل شد

  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی مشکل در استخراج اطلاعات از جدول - حل شد
    نویسنده پیام
    MR-AMIR آفلاین
    عضو جدید
    **

    ارسال‌ها: 8
    تاریخ عضویت: ۱۳۹۳ مهر ۱۶
    اعتبار: 0
    تشکرها : 27
    ( 1 تشکر در 1 ارسال )
    ارسال: #1
    Lightbulb مشکل در استخراج اطلاعات از جدول - حل شد
    با سلام و درود فراوان . . . .
    دوستان من در حال نوشتن کد های login.php بودم که متوجه یه مشکل شدم!
    اول شرح login.php رو بگم: بعد از دریافت نام کاربری و رمزعبور ، نام کاربری و رمزعبور رو به صورت زیر استخراج میکنم:
    کد PHP:
    Select username password from users where username='$username' and password='$pass_hash' 
    و بعد از استخراج مقدار بازگشتی رو با mysqli_fetch_array جدا میکنم و نام کاربری و رمزعبور استخراج شده رو با وارد شده مقایسه میکنم.
    حالا مشکل اینحاست که وقتی نام کاربری در پایگاه داده Admin باشه و ما برای ورود نام کاربری رو admin بزنیم رکورد Admin استخراج میشه و موقع مقایسه نام کاربری چون Admin!=admin وارد نمیشه و ارور میده.

    حالا چیکار کنم که اگه نام کاربری رو admin وارد کردیم فقط admin رو جستحو کنه و Admin رو جستجو نکنه.

    در کل یعنی به کوچک و بزرگ بودن حروف حساس باشه.

    دوستان همینک به یاری سبزتان نیازمندیم.

    با تشکر.
    (آخرین ویرایش در این ارسال: ۱۳۹۳ آبان ۱۲ ۰۱:۱۰ عصر، توسط MR-AMIR.)
    ۱۳۹۳ آبان ۱۱ ۰۷:۲۴ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    molana آفلاین
    چالیست - chalist
    *******

    ارسال‌ها: 1,764
    تاریخ عضویت: ۱۳۸۷ آذر ۳۰
    اعتبار: 60
    تشکرها : 1644
    ( 1550 تشکر در 1015 ارسال )
    ارسال: #2
    RE: مشکل در استخراج اطلاعات از جدول
    وقتی میخای چک کنی از تابع strtolower استفاده کن که تمام حروف رو کوچیک کنه
    __________________________________________________________________________
    همه جوره اش رو داریم ظاهرن
    ۱۳۹۳ آبان ۱۲ ۰۵:۳۵ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : MR-AMIR
    MR-AMIR آفلاین
    عضو جدید
    **

    ارسال‌ها: 8
    تاریخ عضویت: ۱۳۹۳ مهر ۱۶
    اعتبار: 0
    تشکرها : 27
    ( 1 تشکر در 1 ارسال )
    ارسال: #3
    RE: مشکل در استخراج اطلاعات از جدول
    ممنون از اینکه پاسخ دادید. اما مشکل من با این کار حل نمیشه! اگه از این تابع استفاده کنم Admin و admin و ADMIN و ... همگی میشن admin و نتنها مشکلم حل نمیشه بلکه سخت تر هم میشه!

    العان دقیقاً مشکلم اینه که کاری کنم mysql به کوچک و بزرگ بودن حروف حساس باشه. بعنی وقتی کوئری زیر رو اجرا میکنم . . .
    کد PHP:
    select from users where username='AdMiN' 
    فقط و فقط رکورد AdMiN رو بیرون بکشه و ADMIN ، Admin ، adMin و ... رو بیرون نکشه!!!

    سلام و درود فراوان . . .

    آقایون مشکل حل شد. یکی از دوستان در وبسایت stackoverflow و در این مبحث راه حلی پیشنهاد داد که کار ساز بود.

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

    از طریق جستجوی باینری . . . به این صورت:
    کد PHP:
    select from users where usernameBINARY 'Admin' 
    به همین سادگی به همین خوشمزگی :دی

    منبع: dev.mysql.com
    (آخرین ویرایش در این ارسال: ۱۳۹۳ آبان ۱۲ ۰۱:۰۷ عصر، توسط MR-AMIR.)
    ۱۳۹۳ آبان ۱۲ ۱۲:۵۲ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : molana
    molana آفلاین
    چالیست - chalist
    *******

    ارسال‌ها: 1,764
    تاریخ عضویت: ۱۳۸۷ آذر ۳۰
    اعتبار: 60
    تشکرها : 1644
    ( 1550 تشکر در 1015 ارسال )
    ارسال: #4
    RE: مشکل در استخراج اطلاعات از جدول - حل شد
    خب مشکل اینه که از ابتدا نباید اجازه بدی که حروف بزرگ توی نام کاربری قرار بگیره.
    باید همش کوچیک باشه

    اما چون کاراکتر انکودینگ دیفالتmysql به کوچیکی و بزرگی حروف حساس نیست باید کولکتش رو عوض کنی که همین روشی که گفتی یکیش هستش
    اما BINERY باید قبل از نام فیلد قرار بگیره

    یا به این شکل هم می شه استفاده کرد:
    کد:
    SELECT *  FROM `users` WHERE CAST(`username` AS BINARY) = 'Admin'
    __________________________________________________________________________
    همه جوره اش رو داریم ظاهرن
    ۱۳۹۳ آبان ۱۲ ۱۱:۴۸ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : MR-AMIR
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS