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

Форум PHP

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

 

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

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

тема: $_POST данные не обрабатываются в str_replace!!!!! HELP!
 
 автор: ozono   (14.07.2006 в 13:51)   письмо автору
 
 

tt --- name of textarea!!!!!!

хочу в текстареа вписать русские буквы и заменить на английские!!!!! но вот какая проблема:

просто так str_replace($rus, $eng, "ацд"); работает

НО...............НО..............НО через фору пост не работает!!!!!!! он не кодирует не превращает его в англ буквы!!!!

$b = $_POST["tt"];
$eng = array("a","b","c","d");
$rus = array("а","б","ц","д");


$zz = str_replace($rus, $eng, $b);
echo $zz;



ЧТО НЕ ТАК,,,,,,?????????????

   
 
 автор: Unkind™   (14.07.2006 в 13:53)   письмо автору
 
   для: ozono   (14.07.2006 в 13:51)
 

Проверьте форму, с которой отправляете...

   
 
 автор: ozono   (14.07.2006 в 14:16)   письмо автору
 
   для: Unkind™   (14.07.2006 в 13:53)
 

с формой все ок!!!! просто когда я пишу русскими буквами он мне русские буквы и возвращает не заменив их на анг!!!

   
 
 автор: Thrasher   (14.07.2006 в 14:08)   письмо автору
 
   для: ozono   (14.07.2006 в 13:51)
 

Чудеса какие-то.
Выведи echo $_POST["tt"]; и посмотри, что там принимается из формы.

   
 
 автор: ozono   (14.07.2006 в 14:14)   письмо автору
 
   для: Thrasher   (14.07.2006 в 14:08)
 

posmotrite v ptimer moy!!!!

   
 
 автор: pini-pini   (14.07.2006 в 14:46)   письмо автору
 
   для: ozono   (14.07.2006 в 14:14)
 

Уберите имя формы.

   
 
 автор: ozono   (14.07.2006 в 14:56)   письмо автору
 
   для: pini-pini   (14.07.2006 в 14:46)
 

нет это не от нейма формы!!!

   
 
 автор: ozono   (14.07.2006 в 14:56)   письмо автору
 
   для: pini-pini   (14.07.2006 в 14:46)
 

нет это не от нейма формы!!!

   
 
 автор: pini-pini   (14.07.2006 в 15:41)   письмо автору
 
   для: ozono   (14.07.2006 в 14:56)
 

Попробуйте поставить вместо str_replace($rus, $eng, $b) это: strtr ($b, $rus, $eng).

   
 
 автор: ozono   (14.07.2006 в 15:43)   письмо автору
 
   для: pini-pini   (14.07.2006 в 15:41)
 

нет не пошло!!!!!!! я не пойму что не так!!!!!!!! если что можешь скачать мой файл я там наверху его оставил!!

   
 
 автор: Unkind™   (14.07.2006 в 15:46)   письмо автору
 
   для: ozono   (14.07.2006 в 15:43)
 

Выставите высокий уровень ошибок...Че выдает скажите...

   
 
 автор: ozono   (14.07.2006 в 15:55)   письмо автору
 
   для: Unkind™   (14.07.2006 в 15:46)
 

ничего не выдает!!!! просто не исполеяет то что я хочу!!!! он как принимает так и оставляет!!!!!! пишу русскими он и русскими мне выдает!!!!! а надо на англ!

   
 
 автор: pini-pini   (14.07.2006 в 17:49)   письмо автору
 
   для: ozono   (14.07.2006 в 15:55)
 

Если этот вариант не сработает, то замените post на get

   
 
 автор: ozono   (15.07.2006 в 08:55)   письмо автору
 
   для: pini-pini   (14.07.2006 в 17:49)
 

Я проверил и так не идет!!! и тот файл который ты послал тоже не идет!!!! у тебя он пахал,,, ??? ты проверял,,???? ГЕТ тоже не пашет!!!!!!!


вот что я скажу в str_replace() есть такое замечание данными должны быть ДВОИЧНЫМИ СТРОКАМИ!!!!

это не о чем не говорит случайно????? может данные в форме не двоичные строки!!,,,,????

   
 
 автор: pini-pini   (15.07.2006 в 11:54)   письмо автору
 
   для: ozono   (15.07.2006 в 08:55)
 

У меня всё работает

   
 
 автор: ozono   (17.07.2006 в 10:29)   письмо автору
 
   для: pini-pini   (15.07.2006 в 11:54)
 

а у меня не не работает!!! показывает так:

Раньше: ывапывапыва

Теперь: ывaпывaпывa


не переводит на англ!!!!! может что-то нужно поменять в php.ini???????


я впервые с этим сталкивась!!!!!!

ЧТО ДЕЛАТЬ???? у тебя есть где мне показать то как он у тебя сработал??? адрес где бы твой пхп работал!!!!,,,,???

   
 
 автор: Trianon   (17.07.2006 в 10:36)   письмо автору
 
   для: ozono   (17.07.2006 в 10:29)
 

может надо, вместо того чтоб истерику закатывать, все буквы алфавита вписать, а не только четыре?
$eng = array("a","b","c","d");
$rus = array("а","б","ц","д");
так будут преобразовываться только эти четыре символа.

   
 
 автор: ozono   (17.07.2006 в 10:44)   письмо автору
 
   для: Trianon   (17.07.2006 в 10:36)
 

это я вам к примеру показал четыре буквы!!!!!

ети четыре не идут как весь алфаыит сработает Трианон,,,???

   
 
 автор: Trianon   (17.07.2006 в 10:45)   письмо автору
 
   для: ozono   (17.07.2006 в 10:44)
 

Я проверил. Именно Ваши два файла из аттача. Идут. Естественно, только эти четыре.

   
 
 автор: ozono   (17.07.2006 в 10:49)   письмо автору
 
   для: Trianon   (17.07.2006 в 10:45)
 

почему они у меня не работают???????

вот ссылка!!!!


http://www.eco.gov.az/testsite/reg.html

   
 
 автор: Trianon   (17.07.2006 в 11:10)   письмо автору
 
   для: ozono   (17.07.2006 в 10:49)
 

Они работают и у Вас. Конечно, когда тип кодировки страницы вручную поставить Windows-1251.
А с тем типом, который у Вас стоит по умолчанию, браузер вынужден отправлять не символы, а их html-unicode-эквиваленты, что видно если посмотреть исх.текст html на странице ответа.
А их Ваш код не обрабатывает.

Надо правильно ставить charset документа с формой.
Либо через директиву .htaccess AddDefaultCharset windows-1251
Либо через указание типа документа Content-type: text/html; charset="Windows-1251"

Если конечно документ и вправду в кодировке 1251.

   
 
 автор: ozono   (17.07.2006 в 11:18)   письмо автору
 
   для: Trianon   (17.07.2006 в 11:10)
 

нет все равно нет!!!!!!! я шас голову скоро потеряю!!!!!!!!

вот ссылка!!!! сам смотри!!!! написал то что ты мне да все равно не идет!!!

http://www.eco.gov.az/testsite/reg.html

   
 
 автор: Trianon   (17.07.2006 в 11:34)   письмо автору
 
   для: ozono   (17.07.2006 в 11:18)
 

По этой ссылке у меня открывается страница в кодировке "западноевропейский ISO"
Т.е.latin-1.
А в ней нету русских букв.

   
 
 автор: Trianon   (17.07.2006 в 11:37)   письмо автору
 
   для: Trianon   (17.07.2006 в 11:34)
 

Кстати, внутри документа стоит явное указание западноевропейской кодировки
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
так что удивляться нечему. может стоит убрать или поправить эту строку?

   
 
 автор: ozono   (17.07.2006 в 11:40)   письмо автору
 
   для: Trianon   (17.07.2006 в 11:37)
 

ТАК ВОТ ПОЧЕМУ ОН ТАК ДЕЛАЛ????))))))))))))))))))

ИДИОТИЗМ!!!!

Я ПОМЕНЯЛ ШАС ПАШЕТ!!!!!

СПАСИБО БОЛЬШОЕЕЕЕЕЕ!!!!!!!!!!!!!!!!!!!!!

   
 
 автор: ozono   (17.07.2006 в 11:45)   письмо автору
 
   для: Trianon   (17.07.2006 в 11:37)
 

а как ему дать понять что ЕНТЕР нужно передать как бр!!,,,???

   
 
 автор: ozono   (17.07.2006 в 11:54)   письмо автору
 
   для: Trianon   (17.07.2006 в 11:37)
 

Я ВСЕ СДЕЛАЛ!!!!! ВСЕМ БОЛЬШОЕ СПАСИБО!!!!!! из-за одного windows-1251!!!!

просто ужас)))))))))))))))

   
 
 автор: ozono   (17.07.2006 в 11:01)   письмо автору
 
   для: Trianon   (17.07.2006 в 10:45)
 

как думаешь от чего у меня не может он работать???? вроде все написал правильно!!!!

может все таки в пхп--ини нужно что то поправить или как??

   
 
 автор: Shorr Kan   (17.07.2006 в 10:40)   письмо автору
 
   для: ozono   (17.07.2006 в 10:29)
 

А вы не пробовали использовать функции urlencode и urldecode ? Русские буквы вообще перекодированы обычно - потому и не опознаются...

   
 
 автор: ozono   (17.07.2006 в 10:45)   письмо автору
 
   для: Shorr Kan   (17.07.2006 в 10:40)
 

Shorr Kan поясни еше раз то что ты сказал!!!!!!

ты хочешь сказать что на русские буквы форма не обращает внимание,,,,,????

что ты еше знаешь про все это???

   
 
 автор: Shorr Kan   (17.07.2006 в 11:04)   письмо автору
 
   для: ozono   (17.07.2006 в 10:45)
 

Я просто догадываюсь. Дело в том, что русское слово "проверка" будет превращено в "%EF%F0%EE%E2%E5%F0%EA%E0" при передаче get'ом или post'ом. Вот что получается:


<?
print "проверка<br>";
print 
"%EF%F0%EE%E2%E5%F0%EA%E0<br>";
print 
urldecode("%EF%F0%EE%E2%E5%F0%EA%E0")."<br>";
?>


Если запустить этот код у себя на локальном - сразу будет понятно, почему он не находит похожести букв...

Иными словами:


<?
$b 
$_POST["tt"];
$eng = array("a","b","c","d");
$rus = array("а","б","ц","д");


$zz str_replace($rus$engurldecode($b));
echo 
$zz;
?>

   
 
 автор: ozono   (17.07.2006 в 11:07)   письмо автору
 
   для: Shorr Kan   (17.07.2006 в 11:04)
 

показал!!!!!!!


%EF%F0%EE%E2%E5%F0%EA%E0
проверка


но что ты этим хочешь сказать????

   
 
 автор: Shorr Kan   (17.07.2006 в 11:08)   письмо автору
 
   для: ozono   (17.07.2006 в 11:07)
 

То, что этот код наверное сработает:

<?
$b 
$_POST["tt"];
$eng = array("a","b","c","d");
$rus = array("а","б","ц","д");


$zz str_replace($rus$engurldecode($b));
echo 
$zz;
?> 


Просто буква "п" и "%EF" - не очень похожи... хоть это одно и то же. Вот str_replace и не работает.

   
 
 автор: pini-pini   (17.07.2006 в 11:04)   письмо автору
 
   для: ozono   (17.07.2006 в 10:29)
 

В таблице переводов у вас заменяются только ЧЕТЫРЕ буквы:
а, б, ъ, c и д

   
 
 автор: pini-pini   (15.07.2006 в 11:58)   письмо автору
 
   для: ozono   (15.07.2006 в 08:55)
 

>вот что я скажу в str_replace() есть такое замечание данными
>должны быть ДВОИЧНЫМИ СТРОКАМИ!!!!
>
>это не о чем не говорит случайно????? может данные в форме
>не двоичные строки!!,,,,????

Покажите мне, где это написано.
Скорее всего там написано: если данные - двоичные строки, то их надо записывать двоичной последовательностью.

Данные из формы - десятичные строки.
И к тому-же у меня там не применяется str_replace

   
Rambler's Top100
вверх

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