Изменить фильтрацию массива в бд MySQL.

Тема в разделе "Базы данных", создана пользователем metallphilin, 7 окт 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. metallphilin

    metallphilin старожил nulled

    Регистр.:
    25 авг 2006
    Сообщения:
    616
    Симпатии:
    165
    суть в чем.. при регитсрации, скрипт фильтрует все символы, не принадлежащие массиву 0-9A-Za-z. Поэтому регистрация русскими символами не проходит.

    Я так понимаю, что бы пропустить регитсрацию русскими символами нужно разширить правило проверки на русские символы тоже.

    вот что указано в MySQL:

    Код:
    return ( preg_match( '/^[a-zA-Z0-9_-]+$/', $arg0 ) and !file_exists( $dir['root'] . $arg0 ) );
    казалось бы все просто, добавить в массив наши, буквы:

    Код:
    return ( preg_match( '/^[a-zA-ZАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя0-9_-]+$/', $arg0 ) and !file_exists( $dir['root'] . $arg0 ) );
    но скрипт по прежнему отказывается пропускать русские символы. Есть идеи как пофиксить?
     
  2. ozware

    ozware

    Регистр.:
    22 апр 2007
    Сообщения:
    327
    Симпатии:
    42
    попробовать пошаманить с кодировками, возможно, что они различаются, отсюда и проблемы
     
  3. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
    А мне кажется в другом месте еще режутся.

    Попробуй выводить на экран прямо изнутри условия if().
    Например, заведи функцию tst
    PHP:
    function tst($str) {
      echo 
    $str "<br>";
      return 
    1;
    }
    и в код включи return (tst($arg0) && preg_match(....

    так ты точно узнаешь, что за кодировка и действительно ли в ней дело.
     
  4. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    для utf-8:
    PHP:
    return ( preg_match('/^[a-zA-Zа-яА-ЯЁё0-9_\-]+$/iu'$arg0) and !file_exists$dir['root'] . $arg0 ) );
     
  5. gregzem

    gregzem

    Регистр.:
    21 окт 2007
    Сообщения:
    200
    Симпатии:
    63
    А в какой кодировке сам .php файл с приведенным кодом? В той же, что и таблица MySQL?
     
Статус темы:
Закрыта.