Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проверка strlen() русского текста
 
 автор: Lex   (13.06.2006 в 02:01)   письмо автору
 
 

делаю регистрацию в чате ограничил максимальное количество символов в логине например 10! при проверке если ник на латинском то всё ок, а если на русском то пишет типа длинна слишком большая! проверяю вот этим.

<?

if(strlen($_POST['login']) > 10)$error=''ошибка'';

?>

   
 
 автор: cheops   (13.06.2006 в 10:53)   письмо автору
 
   для: Lex   (13.06.2006 в 02:01)
 

А если так попробовать
<? 

if(strlen(urldecode($_POST['login'])) > 10)$error=''ошибка''

?>

Распечатайте значение $_POST['login'] с русским ником - что в нём? Он нормально выглядит?

   
 
 автор: Lex   (13.06.2006 в 11:35)   письмо автору
 
   для: cheops   (13.06.2006 в 10:53)
 

не помогло! если ставлю максимум символов 5 то разрешает русских только 3. может быть дело в том, что у меня всё в utf-8?

   
 
 автор: NFR   (13.06.2006 в 11:45)   письмо автору
 
   для: Lex   (13.06.2006 в 11:35)
 

хм... попробуй $_POST['login'] обработать trim-ом...

   
 
 автор: Lex   (13.06.2006 в 11:53)   письмо автору
 
   для: NFR   (13.06.2006 в 11:45)
 

а так вообще только 2 знака

   
 
 автор: Lex   (13.06.2006 в 11:59)   письмо автору
 
   для: Lex   (13.06.2006 в 11:53)
 

$_POST['login'] напечатал всё нормально!

   
 
 автор: mmaks   (13.06.2006 в 11:58)   письмо автору
 
   для: Lex   (13.06.2006 в 02:01)
 

Тебе действительно надо кодировку поменять...
Например так:

<META http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\">


Я у себя попробовал. Скрипт:

<?php    
  
if (isset($_GET['str1']))
  {
  echo 
strlen($str1)."<br>";
  echo 
strlen($str2)."<br>";
  }
  else
  {
  
?>
  <html>
  <body>
  <form action="rutext.php" method="get">
  <input type="text" name="str1">
  <input type="text" name="str2">
  <input type="submit" name="send" >
  </form>
  </body>
  </html>
  <?
  
}
?>

Если вводить "йцукен" и "qwerty", а кодировка UTF-8 то результаты 12 и 6... А в win-1251 все норма... 6 и 6...

   
 
 автор: Lex   (13.06.2006 в 12:04)   письмо автору
 
   для: mmaks   (13.06.2006 в 11:58)
 

а это у меня вообще правельный заголовок?
это будет чат для wap2 если делать на win1251 то поймут ли телефоны?

<?
header
("Content-type:text/html; charset=utf-8");
echo 
"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"><html><head>";
echo 
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">";
echo
"<meta http-equiv='Cache-Control' content='no-cache' forua='true'/>";
?>

   
 
 автор: mmaks   (13.06.2006 в 12:07)   письмо автору
 
   для: Lex   (13.06.2006 в 02:01)
 

Есть еще мысль!


rawurldecode ()

rawurldecode -- декодирует URL-кодированную строку
Описание
string rawurldecode(string str);

Возвращает строку, в которой последовательность из символа процента (%) с последующих 2-х шестнадцатиричных цифр заменяется соответствующим буквенным символом. Например, строку

foo%20bar%40baz
будет заменена на

foo bar@baz

Или еще вариант:

convert_cyr_string ()

convert_cyr_string -- переводит из одной русской кодовой таблицы в другую
Описание
string convert_cyr_string(string str, string from, string to);

Эта функция переводит указанную строку из одной русской кодовой таблицы в другую. Аргументы from и to являются одним символом, который определяет исходную и целевую кодовую таблицу. Поддерживаемые типы:

k - koi8-r

w - windows-1251

i - iso8859-5

a - x-cp866

d - x-cp866

m - x-mac-cyrillic

   
 
 автор: Lex   (13.06.2006 в 12:20)   письмо автору
 
   для: mmaks   (13.06.2006 в 12:07)
 

так не понял! если использовать convert_cyr_string () точто то яне вижу utf-8 в списке кодировок! икак это оформить то? convert_cyr_string ($_POST['login'],что тут, а тут что)

   
 
 автор: Lex   (13.06.2006 в 12:22)   письмо автору
 
   для: mmaks   (13.06.2006 в 12:07)
 

так не понял! если использовать convert_cyr_string () точто то яне вижу utf-8 в списке кодировок! икак это оформить то? convert_cyr_string ($_POST['login'],что тут, а тут что)

   
 
 автор: mmaks   (13.06.2006 в 12:42)   письмо автору
 
   для: Lex   (13.06.2006 в 12:22)
 

Попробуй так

echo ConvertStringToUTF("Хелло ворлд! пиплы мир!");
function ConvertStringToUTF($str) 
  {
    return Iconv ("KOI8-R","UTF-8",convert_cyr_string($str,"w","k"));
  }


Не знаю сработает ли. Просто на другом форуме случайно нарыл...

   
 
 автор: mmaks   (13.06.2006 в 12:46)   письмо автору
 
   для: Lex   (13.06.2006 в 12:22)
 

Посмотри тут:
http://www.hostforum.ru/archive/index.php/t-6868.html

   
 
 автор: Lex   (13.06.2006 в 15:34)   письмо автору
 
   для: mmaks   (13.06.2006 в 12:46)
 

вообще если подумать то нафиг регистрация русских ников вообще нужна?!!!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования