За последние 24 часа нас посетили 22896 программистов и 1243 робота. Сейчас ищут 717 программистов ...

PHP + MySQL + русская буква "я"

Тема в разделе "MySQL", создана пользователем fealindar, 2 фев 2006.

  1. fealindar

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

    С нами с:
    2 фев 2006
    Сообщения:
    15
    Симпатии:
    0
    Хотелось бы узнать, сталкивался ли кто то с такой проблемой, в системе регистрации на сайте если в логине содержится буква "я" - то выборку из базы оно выполняет криво

    $sql_login="SELECT `name` FROM `users` WHERE `name` = '".strtolower($_POST['name'])."'";

    при любых других русских символах - все нормально. Подозреваю в этом функцию strtolower(), без нее все вроде как отображается, но без неё неудобненько будет... пхп 4.2.2 , маскл 3.23.58... Предложения обновить базу не приветствуются, на ней слишком много крутится... И слишком гемморойно будет это потом переделывать...
     
  2. Anonymous

    Anonymous Guest

    Tak a v chem sobstvenno vopros? Stroka posle strtolower vernaya? Symbol nujniy?


    V kakoy kodirovke sozdana baza MySQL? Esli latin-1 ili podobnoe to rabotat' skoree vse go i ne budet kak sleduet. NUjen UNICODE/win1251cp
     
  3. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    локаль выставить нужную.

    почитай на предмет SQL-инъекций с таким SQL запросом. 8)
     
  4. Black_Knight

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

    С нами с:
    8 фев 2006
    Сообщения:
    1
    Симпатии:
    0
    Адрес:
    Россия
    Если у тебя поле `name` в таблице `users` не бинарное (а судя по всему так и есть), то ничего неудобненького не будет. Если так, то смело убирай strtolower и всё будет 200/ОК
     
  5. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Так в чём вопрос собственно состоит ?
     
  6. ns-keip

    ns-keip Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    3
    Симпатии:
    0
    вообще, никогда не сталкивался. кста, у тебя sql-injection в этом коде.
    допустим, в твоем форуме хоть кто-нибудь да выберет паролем слово "sexxx". тогда, чтобы угнать его регу, нам нужно, чтобы

    $_POST['name'] = "name' or password='sexxx'";

    и вообще запрос какой-то странный (выбрать имя там, где оно такое-то).

    ну, это так - к слову. неужели в php такая же хрень c буквой "я", как и в Java?
     
  7. Anonymous

    Anonymous Guest

    Можно сделать так
    "SELECT name FROM users WHERE binary name = '".strtolower($_POST[name])."'";
    Сам ажно задумалсь при таком раскладе можно сделать инъекцию?
     
  8. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Узнай что такое инъекция и сразу станет понятно :)
     
  9. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    инъекция - это большой шприц в одно место! 8)))
     
  10. Diver

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

    С нами с:
    19 фев 2006
    Сообщения:
    144
    Симпатии:
    0
    Адрес:
    Владивосток
    чаще маленький и в руку :)
     
  11. fealindar

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

    С нами с:
    2 фев 2006
    Сообщения:
    15
    Симпатии:
    0
    Такая загагулина мне нужна для того, что бы когда юзверь вводил свой ник без учета регистра его все равно бы впускало (если кто предложит лучший вариант - буду рад, но вроде бы и так работает, правда без буквы "я"). База у меня в кириллице. Если мне кто то скажет чем с точки зрения пхп отличаются ники "зимний" и "зимняя" - то буду премного благодарен, ибо с одним все пашет отлично, а с другим глючит.

    ЗЫ. Из всей темы меня больше всего заинтересовало упоминание про букву "я" в яве, если можно - поподробнее об этом и как с этим борются, может по образу и подобию получится...
     
  12. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    тебе же сказали. выставь правильную кодировку и локаль и все заработает
     
  13. fealindar

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

    С нами с:
    2 фев 2006
    Сообщения:
    15
    Симпатии:
    0
    да нормально все и с локалью и с кодировкой... локаль вин1251, кодировка такая же... если б это из за локали глючило - то оно бы и на "ё" ругалось и еще на много чего, так нет... пашет...