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

Форум PHP

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

 

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

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

тема: Расшифровка urlencode или как загрузить "русский" файл
 
 автор: Oleg-Perm   (21.03.2006 в 02:03)   письмо автору
 
 

Есть такой прикол: при попытке загрузить с сервера файл с русским названием в имени, Firefox загружает без проблем (меняя русские символы на очень схожее с urlencode() ), а добрый Explorer, которым пользуется большинство user'ов, естественно не находит этот файл... Хорошо, пишем urlencode и теперь получаем сообщение (у меня Денвер стоит под WinXP):
"Not Found
The requested URL /dip5/files/01/Общая/Приказ1Физики.TXT was not found on this server."
Хотя если этот полный адрес вставить в проводнике (это у виндоуса такая фишка модная, кто подзабыл :) то файлик будет чудом открыт!!!
Т.е., он говорит, что файл не найден по тому пути, по которому он и лежит! Как так? Может под линукс на хостинге надо потестить?

И ещё про urlencode: раньше у меня сообщения между страницами ходили по Header и кодировал я их base64_encode (и вроде всё работало, касательно русских слов). Затем принес к знающим людям, у которых сервер (наверно Apache) стоит под линухой, запустили, показалась Абра-Котабра. Люди сказали, что так лучше не писать, и заменили base64_encode на urlencode (с соответствующей заменой base64_decode на urldecode).
В результате, Денвер под WinXP изменений не почуял (русский остался русским), но вот сервер на хостинге (будь он не ладен) стал Абру-Катабру выводить.
В чем может быть причина? Может серверу на хостинге задать какую то настроечку? :-)
Вот код по поводу этого:

header ("Location: index.php?d_path=".$d_path."&write=".urlencode("Ошибка при удалении файла: '".$filename[$i]."'")."&uin=".$uin));

   
 
 автор: cheops   (21.03.2006 в 02:10)   письмо автору
 
   для: Oleg-Perm   (21.03.2006 в 02:03)
 

>В результате, Денвер под WinXP изменений не почуял (русский остался русским), но вот сервер
>на хостинге (будь он не ладен) стал Абру-Катабру выводить.
Как кракозяблики выглядят и в какой кодировке страница отображается?

   
 
 автор: Oleg-Perm   (21.03.2006 в 12:29)   письмо автору
17.6 Кб
 
   для: cheops   (21.03.2006 в 02:10)
 

Вид кракозябликов с расшифровкой можно посмотреть в приложенной картинке (18Кб). Кстати кракозяблики эивут только в ИЕ (вместе с неправильными именами файлов), а в Firefox всё путем.

Дак как сделать чтобы в ИЕ всё работало?

   
 
 автор: Trianon   (21.03.2006 в 12:42)   письмо автору
 
   для: Oleg-Perm   (21.03.2006 в 12:29)
 

Нельзя просто так в URL пихать русские буквы. Правильно Вам сказали.
Из того, что Firefox на лету исправляет Ваши ошибки, еще не следует, что эти ошибки уходят совсем.
Что именно происходит, зависит от того, что творится в index.php.

URL и путь в проводнике - сущности разные. И пишутся они, считайте, на разных языках.
Не смотря на свою внешнюю и внутреннюю похожесть.

   
 
 автор: cheops   (21.03.2006 в 13:20)   письмо автору
 
   для: Oleg-Perm   (21.03.2006 в 12:29)
 

Так погодите, у вас же действительно русский текст в URL, я так понял проблема в том, что не работает даже после шифровки urlencode() или нет?

   
Rambler's Top100
вверх

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