escapeshellcmd() схедает букву "я".

Udav

Новичок
escapeshellcmd() схедает букву "я".

Доброе время суток, дорогие форумчане!

при использовании escapeshellcmd() пропадают все буквы я в русском тексте, можноли это както обойти?

Зарание спасибо!
 

Udav

Новичок
Както это не правильно, я ведь не смогу говорить пользователю, чтобы он вместо "меня"-"менЯ" писал допустим
 

fixxxer

К.О.
Партнер клуба
а что это ты такое говоришь пользователю через shell_exec да еще и в аргументах вызова? :confused:

если уж надо что то передать бинарю такое, то есть setenv и пайпы.
 

Udav

Новичок
вот из одного учебника по ПХП:

"
Функция escapeshellcmd( ) экранирует все сомнительные символы в строке, которые могут привести к выполнению потенциально опасной системной команды:
"

Я использую следующию конструкцию:

$osebe=mysql_real_escape_string(strip_tags(escapeshellcmd($_POST['osebe'])));

в итоге $osebe получает нужную строку, но без маленьких буков "я"

-~{}~ 19.03.09 19:49:

Вот ссылка на этот учебник

http://i-vd.org.ru/books/php/security.shtml#n
 

Dovg

Продвинутый новичок
А что ты дальше делаешь с $osebe?
куда-то передаешь или записываешь в базу? или еще чего-нибудь.

Учебник не прав, либо ты его неправильно прочитал.
 

DiMA

php.spb.ru
Команда форума
чтобы было безопасно через шелл передавать, закодируй в base64 (с заменой / + =)
 

Udav

Новичок
2 Dovg:

Записываю в базу.

2 x-yuri:

Я эту статью уже читал.

Вообщем как я понял, хватит если я напишу вот так:

$osebe=mysql_real_escape_string(strip_tags($_POST['osebe']));
 

fixxxer

К.О.
Партнер клуба
Неправильно, strip_tags тебя не обезопасит полностью, а пользователям, использующим <вот> такие значки в оформительских целях, доставит неудобства.

Пиши как есть - mysql_real_escape_string($_POST['osebe']), а при _выводе_ делай htmlspecialchars($string, ENT_QUOTES).

И не читай в интернетах всякую херню которую пишут полные ламеры. Ман на php.net есть на русском, еще есть phpfaq.ru, если нужна книжка - читай http://www.ozon.ru/context/detail/id/2612430/
 
Сверху