За последние 24 часа нас посетили 36312 программистов и 1690 роботов. Сейчас ищут 1084 программиста ...

запрос РЕГИСТРОЧУВСТВИТЕЛЬНЫЙ

Тема в разделе "PHP и базы данных", создана пользователем oksana, 30 июл 2012.

  1. oksana

    oksana Активный пользователь

    С нами с:
    16 мар 2012
    Сообщения:
    221
    Симпатии:
    0
    Всем привет =)

    есть таблица users utf8_general_ci

    пользователь зарегестрировался и появилось поле oleg
    Далее проходит авторизацию пишу Oleg, oleg, OleG, все проходит

    Как сделать запрос чувствительный к регистру или до запроса еще что то надо делать?
     
  2. mrdez

    mrdez Активный пользователь

    С нами с:
    3 июн 2012
    Сообщения:
    45
    Симпатии:
    0
    Адрес:
    Латвия
    Код в студию
     
  3. oksana

    oksana Активный пользователь

    С нами с:
    16 мар 2012
    Сообщения:
    221
    Симпатии:
    0
    да там в принципе ничего особенного =)

    Код (Text):
    1.  
    2. $login = $_POST['login'];
    3. $login = trim($login);
    4. $login = mysql_real_escape_string($login);
    5.  
    6. $result = mysql_query("SELECT * FROM users WHERE login = '$login' AND password = '$password' AND activation = '1'",$db);
    Нужно чтоб при выборке $login к примеру Oleg и oleg не совпадало, а она совпадает =(
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    таблице, либо отдельной колонке можно задавать свой индивидуальный collation, например cp1251_general_ci — здесь "ci" == "case insensitive", а можно cp1251_general_cs - 'case sensitive".
     
  5. oksana

    oksana Активный пользователь

    С нами с:
    16 мар 2012
    Сообщения:
    221
    Симпатии:
    0
    так а как это сделать что то я не нашла такого phpmadmin =)
     
  6. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Можно ничего не менять.
    Попробуйте так:
    Код (Text):
    1. $result = mysql_query("SELECT * FROM users WHERE login = '$login' COLLATE utf8_bin AND password = '$password' AND activation = '1'",$db);
    Вместо utf8_bin пишите нужную Вам кодировку (кодировку столбца с приставкой _bin).
     
  7. oksana

    oksana Активный пользователь

    С нами с:
    16 мар 2012
    Сообщения:
    221
    Симпатии:
    0
    написала SELECT * FROM users WHERE login = '$login' COLLATE utf8_general_ci AND password = '$password' AND activation = '1'"

    увы таже проблема проходит Oleg и OleG проходит
     
  8. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Говорят, иногда полезно документацию почитывать ;)

    Не зная какая кодировка столбца, попробуйте так:
    $result = mysql_query("SELECT * FROM users WHERE login = CAST('$login' AS BINARY) AND password = '$password' AND activation = '1'",$db);
     
  9. oksana

    oksana Активный пользователь

    С нами с:
    16 мар 2012
    Сообщения:
    221
    Симпатии:
    0
    Я только за =) но нет ссылки на хороший мануал =(
     
  10. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Здрасте, приехали...
    Это, например, никто не отменил ещё: http://dev.mysql.com/doc/refman/5.5/en/preface.html