[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: русские символы не проходят проверку
Страницы: 1, 2
dieselnt
Имеем поле для простого текста длиной до 255 символов.
Регулярное выражение для проверки:
preg_match("/^[a-zA-Zа-яА-Я0-9]{1}[a-zA-Zа-яА-Я0-9 \.\,\-]{0,253}[a-zA-Zа-яА-Я0-9\.]{1}$/",$_POST['...'])

Русские символы не проходят проверку. Английские проходят. А главный чес, что это же самое выражение нормально работает в сценарии в этой же папке с такой же формой. Проверял даже так:
[a-zA-Zа-яА-Я]{0,50}

Пишу любую английскую букву - проходит, русскую - нет.

Найти ответ не могу, я - 1lvl, надеюсь на помощь.
Winston
Для utf-8 нужно указать модификатор u
dieselnt
Цитата (Winston @ 6.01.2013 - 00:11)
Для utf-8 нужно указать модификатор u

Безрезультатно
Winston
Даже такой код выдает false?
var_dump((bool)preg_match('/^[a-zа-я ]{0,50}$/iu', 'test тест'));
dieselnt
Цитата (Winston @ 6.01.2013 - 00:30)
Даже такой код выдает false?
var_dump((bool)preg_match('/^[a-zа-я ]{0,50}$/iu', 'test тест'));

Да
Winston
А кодировка у тебя какая?
dieselnt
Цитата (Winston @ 6.01.2013 - 00:40)
А кодировка у тебя какая?

Я боялся этого вопроса.
На странице с формой в теге мета я указал utf-8. Я правильно ответил на вопрос?
Winston
А файл в какой кодировке у тебя?
Здесь подробнее http://phpforum.ru/index.php?showtopic=27289
dieselnt
Цитата (Winston @ 6.01.2013 - 00:55)
А файл в какой кодировке у тебя?
Здесь подробнее http://phpforum.ru/index.php?showtopic=27289

Убрал meta, сделал через header в файле с формой. Все равно не проходит, но теперь весь русский текст превратился в <?>.
inpost
Winston
А почему ты дал ту ограниченную ссылку smile.gif Во второй же целых 11 правил на установку кодировки.

dieselnt
Надо и meta, и header, и кодировку страницы, и в htaccess прописать... после текст перенабрать.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
dieselnt
Цитата (inpost @ 6.01.2013 - 01:17)
Winston
А почему ты дал ту ограниченную ссылку smile.gif Во второй же целых 11 правил на установку кодировки.

dieselnt
Надо и meta, и header, и кодировку страницы, и в htaccess прописать... после текст перенабрать.

Сделал. Создал новый файл с формой, в этой же папке файл-обработчик. Указал мета, header, htaccess. Все так же. Да и как в таком случае объяснить, что такая же форма в той же папке 10 минут назад написанная с обработчиком с точно таким же регулярным выражением работает нормально?
Zzepish

preg_match('/^[a-zа-я0-9]{1}[a-zа-я0-9 \.\,\-]{0,253}[a-zа-я0-9\.]{1}$/ui',$_POST['...'])

Так чуть короче
dieselnt
Цитата (Zzepish @ 6.01.2013 - 02:12)

preg_match('/^[a-zа-я0-9]{1}[a-zа-я0-9 \.\,\-]{0,253}[a-zа-я0-9\.]{1}$/ui',$_POST['...'])

Так чуть короче

Если б проблема была в длине только
Zzepish
dieselnt
кинь мне адрес сайта, а еще лучше- код страницы, или вообще страницу файлом!
dieselnt
Цитата (Zzepish @ 6.01.2013 - 02:48)
dieselnt
кинь мне адрес сайта, а еще лучше- код страницы, или вообще страницу файлом!

Скопировал текст обработчика в другой файл и сохранил его в .php - не работает.
Скопировал его и сохранил в .txt, а затем уже в .php - заработал.

Пока так. Но очень интересно знать в чем же была причина. Может это все-таки лыжи не едут.

А было так:

<form name="form" action="asdf.php" method="POST">
<input
type="text" name="qwer" size="30" maxlength="255" />
<input
type="submit" />
</form>




<?php
if(!preg_match("/^[a-zA-Zа-яА-Я0-9]{1}[A-Za-zА-Яа-я0-9 \.\,\-]{0,253}[a-zA-Zа-яА-Я0-9\.]{1}$/u",$_POST['qwer']))
{
die('emmastone');
}
?>

И получал я emmastone.

И даже так:

$vari = 'логопед';

if(!preg_match("/^[a-zA-Zа-яА-Я0-9]{1}[A-Za-zА-Яа-я0-9 \.\,\-]{0,253}[a-zA-Zа-яА-Я0-9\.]{1}$/u",$vari))
{
die($vari);
}

Проверку переменная не проходит, а вместо логопеда пишет какую-то неизвестную мне профессию.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.