|
|
|
| Есть такая проблема, данные присланные из формы проверяются на вшивость, при этом данные на латинице проверку проходят, а на кирилице нет.
<?php
if (isset($_POST["name"]))
{
if($_POST["name"]!=preg_replace("/[^\\w_]/","",$_POST["name"])) echo "Ошибка! Имя должно состоять только из цифр и букв латинского и русского алфавитов.";
}
?>
<form name="form" action="index.php" method="post" enctype="application/x-www-form-urlencoded">
<input type="text" name="name" size="50">
<input type="submit" value="Отправить">
</form>
|
Локально на домашнем компе все работает нормально, а на хостинге кирилица игнорируется.
Граждане Мэтры, помогите советом, как решить проблему? | |
|
|
|
|
|
|
|
для: aalexx
(12.01.2007 в 12:20)
| | Скорее всего из-за application/x-www-form-urlencoded
попробуй просто:
<form name="form" action="index.php" method="post">
|
| |
|
|
|
|
|
|
|
для: vbps
(12.01.2007 в 13:14)
| | Пробовал, тоже самое...
У меня тоже такое ощущение что символы кирилицы кодируются в мнемоники, но urldecode() не помогает.
А может выражение "/[^\\w_]/" на сервере хостера не соответствует всем сиволам а только латинским буквам? | |
|
|
|
|
|
|
|
для: aalexx
(12.01.2007 в 14:37)
| | >Пробовал, тоже самое...
>У меня тоже такое ощущение что символы кирилицы кодируются в мнемоники, но urldecode() не помогает.
urldecode() здесь совершенно не требуется. Дело не в кодировании параметров.
>А может выражение "/[^\w_]/" на сервере хостера не соответствует всем сиволам а только латинским буквам?
А вот это может быть запросто. Если локаль на сервере не установлена корректно.
На самом деле русские буквы в шаблоне можно задать явным диапазоном [А-Яа-яЁё]
или даже перечислить посимвольно. По идее это должно работать даже при некорректно заданной локали. Хотя тут возможны варианты... | |
|
|
|
|
|
|
|
для: Trianon
(12.01.2007 в 15:11)
| | Если можно, помогите составить регулярное выражение с использованием [А-Яа-яЁё]. Требуется проверять слово на присутствие в нем всевозможных знаков и т.д. и т.п., в общем слово должно состоять только из букв латинского и русского алфавитов.
Кстати хостинг русский, странно что там такие вещи не установлены как должно. | |
|
|
|
|
|
|
|
для: aalexx
(12.01.2007 в 15:20)
| |
if(preg_match('/^[A-Za-zА-Яа-яЁё]+$/', $word))
echo 'Good';
else
echo 'Bad';
|
| |
|
|
|
|
|
|
|
для: Trianon
(12.01.2007 в 15:25)
| | Спасибо огромное, все получилось! | |
|
|
|
|
|
|
|
для: aalexx
(12.01.2007 в 15:20)
| | А Вы поинтересовались у хостера, как правильно устанавливать локаль на его серверах?
У русского хостинга могут быть нерусские клиенты. :) | |
|
|
|
|
|
|
|
для: vbps
(12.01.2007 в 13:14)
| | >Скорее всего из-за application/x-www-form-urlencoded
>
application/x-www-form-urlencoded - обычный умалчиваемый вид кодирования параметров формы. Прпробовать "просто" - значит ничего не изменить. | |
|
|
|