За последние 24 часа нас посетили 17759 программистов и 1283 робота. Сейчас ищут 1433 программиста ...

Проверка и обработка формы

Тема в разделе "Регулярные выражения", создана пользователем BlackAngel, 4 сен 2007.

  1. BlackAngel

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

    С нами с:
    19 мар 2007
    Сообщения:
    32
    Симпатии:
    0
    Для проверки правильности ввода из формы необходимо проверить что содержащаяся в переменной $a строка не содержит иных символов кроме допустимых, при этом допустимых штук 15-20. Как это сделать на php?
     
  2. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Код (Text):
    1. preg_match('#^[a-z0-9]{,20}$#', $str);
     
  3. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    А как сделать, чтобы в допустимые символы входил апостроф ' ?
    Код (Text):
    1.  
    2. preg_match('/^[a-zA-Z0-9а-яА-Я\'_\-\.]{2,20}$/', $txt);
    В строке допускаются все приведенные символы, кроме апострофа. Почему?
     
  4. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Всё нормально. Проверил.
    PHP:
    1. <?php
    2. $txt = 'Hello\'world.';
    3. var_dump(preg_match('/^[a-z0-9а-я\'_\-.]{2,20}$/i', $txt));
    Код (Text):
    1. int(1)
     
  5. DarkElf

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

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    Kreker

    а спецсимволы можно слешировать с помощью "\" тогда они будут как соответствующие символы трактоватся, то есть [\\d] - это не символы последовательности 0-9 а \ и d=)
     
  6. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Точно работает. Виной всему магические кавычки -)
    (У меня форма с ajax)
     
  7. DarkElf

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

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    ini_set('magic_quotes_gpc','Off');
    ini_set('magic_quotes_runtime','Off');

    в самых первых строках php скрипта
     
  8. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    DarkElf первый параметр, как и register_globals, через ini_set не устанавливается. Можно догадаться, почему.