PDA

Просмотр полной версии : Битые аттачи на форуме


dzMUDiST
26.10.2005, 20:38
Почему в apache может передаваться битая информация (c) The OpenNET Project

Если используется русский apache и после закачки через форму файл приходит битый:
CharsetRecodeMultipartForms Off

Если пользователь скачивает битый файл (например, rar-архив):
- Убедитесь, что для типа вашего файла присутствует корректная запись вmime.types;
- Проверьте, какой тип по умолчанию установлен в httpd.conf, лучше поставить
DefaultType application/octet-stream

Если PHP скрипт выдает битую информацию:
1. Например, если в результате выполнения функции (например,
base64_encode($buffer)) на выходе получается битый файл (кавычки, \ и
символ с нулевым кодом экранированы символом \), то проблема в
использовании директив автоматического экранирования magic_quotes_gpc
(get, post, cookie) или magic_quotes_runtime (автоэкранирования в
некоторых функциях) в php.ini. Для решения проблемы нужно использовать
функцию stripslashes, например: base64_encode(stripslashes($buffer))

2. stripslashes не есть противоположностью addslashes/magic_quotes_*

Они точно так же могут испортить файл, потому что если в исходном файле встречается последовательность \<символ_экранирования> то \ в любом случае будет утерян.
magic_quotes_gpc надо в любом случае отключать или административно (php.ini, httpd.conf) или на свой виртуальниый хост через
.htaccess (mod_php)
php_flag magic_quotes_gpc off

php.ini (CGI и если правильно настроен suExec)
magic_quotes_gpc=off


Может быть эта информация поможет исправить проблему.

вбр.