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

Форум MySQL

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

 

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

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

тема: Одинарные кавычки в строке браузера
 
 автор: Raptorx2   (17.03.2010 в 03:21)   письмо автору
 
 

Здравствуйте, вот появился небольшой вопрос: Из базы данных беру значение(текст), содержащий одинарную кавычку. Это значение будет использоваться в строке браузера. Однако браузер выводит только часть этого значения - до одинарной кавычки, а при экранировании - ту же часть+обратный слеш.

Например,пытаюсь создать ссылку на скачивание файла. У меня в БД значение нужной ячейки - files/Music/Rock n' Roll.7z

В браузере выводит:
При экранировании -
http://localhost/Testsite/files/Music/Rock n\

Без экранирования -
http://localhost/Testsite/files/Music/Rock n


Т.е. доходит до кавычки и отбрасывает остальную часть ссылки. Соответственно, пишет, что такого файла нет.

  Ответить  
 
 автор: Trianon   (17.03.2010 в 09:25)   письмо автору
 
   для: Raptorx2   (17.03.2010 в 03:21)
 

Есть такая штука, как стандарт RFC-1738, которым почему-то могие пренебрегают.

rawurlencode()

  Ответить  
 
 автор: Raptorx2   (17.03.2010 в 16:30)   письмо автору
 
   для: Trianon   (17.03.2010 в 09:25)
 

Функцию эту знаю, только думал, что она нужна при обработке символов нац. языков - русский и пр.
Однако появилась другая проблема - не может найти этот файл, хотя путь,вроде, указывает верно.

http://localhost/Testsite/files%2FMusic%2FRock%20n%27%20Roll.7z

The requested URL /Testsite/files/Music/Rock n' Roll.7z was not found on this server.


если нормально ввести
http://localhost/Testsite/files/Music/Rock n' Roll.7z

То скачивание идет.

  Ответить  
 
 автор: Trianon   (17.03.2010 в 16:47)   письмо автору
 
   для: Raptorx2   (17.03.2010 в 16:30)
 

Ок.
Пусть идет.

  Ответить  
 
 автор: Raptorx2   (17.03.2010 в 16:52)   письмо автору
 
   для: Trianon   (17.03.2010 в 16:47)
 

Ну а почему не находит

http://localhost/Testsite/files%2FMusic%2FRock%20n%27%20Roll.7z

The requested URL /Testsite/files/Music/Rock n' Roll.7z was not found on this server. 

  Ответить  
 
 автор: Trianon   (17.03.2010 в 16:52)   письмо автору
 
   для: Raptorx2   (17.03.2010 в 16:52)
 

в URI не должно быть пробелов. Да и апострофов тоже.
Совершенно очевидно, что в именах файлов этим символам тоже делать нечего.

  Ответить  
 
 автор: Raptorx2   (17.03.2010 в 16:56)   письмо автору
 
   для: Trianon   (17.03.2010 в 16:47)
 

http://localhost/Testsite/files%2FMusic%2FRock+n%27+Roll.7z

The requested URL /Testsite/files/Music/Rock+n'+Roll.7z was not found on this server.

  Ответить  
 
 автор: Trianon   (17.03.2010 в 16:58)   письмо автору
 
   для: Raptorx2   (17.03.2010 в 16:56)
 

а слэш / специально был заенкоден или случайно?

Кстати да. Вот и ответ на вопрос, почему не работает.
Слэш-то у Вас - не часть имени файла. Я бы сказал - наверняка не часть.

  Ответить  
 
 автор: Raptorx2   (17.03.2010 в 17:06)   письмо автору
 
   для: Trianon   (17.03.2010 в 16:58)
 

Использовал rawurlencode, как вы сказали. У меня в БД хранится путь в этому архиву (/files/Music/Rock n' Roll.7z), я его обрабатываю этой функцией. Т.е, Слеши обрабатываются. Сейчас сделаю, чтобы обрабатывалась только последняя часть строки - после всех слешей.

  Ответить  
 
 автор: Valick   (17.03.2010 в 17:35)   письмо автору
 
   для: Raptorx2   (17.03.2010 в 17:06)
 

у Вас было бы меньше геморроя если бы имя хранимого файла было бы не Rock n' Roll.7z, а идентификатор строки БД соответствующий этому названию т.е. 56743.7z
к тому же я не знаю как эти архивы попадают к Вам и кто следит за одинаковыми именами файлов, а при использовании варианта с идентификатором про уникальность можно не думать в пределах разумного...

  Ответить  
 
 автор: Raptorx2   (17.03.2010 в 18:05)   письмо автору
 
   для: Valick   (17.03.2010 в 17:35)
 

это конечно разумнее, но имена использовал для удобства, чтобы можно было быстро различить загруженный контент по названию.

  Ответить  
 
 автор: Trianon   (17.03.2010 в 17:42)   письмо автору
 
   для: Raptorx2   (17.03.2010 в 17:06)
 

Я вообще-то сказал rawurlencode не использовать, а ознакомиться с . И в стандарт заглянуть.
Так что не надо.

  Ответить  
 
 автор: Raptorx2   (17.03.2010 в 17:58)   письмо автору
 
   для: Trianon   (17.03.2010 в 17:42)
 

Да, ошибка заключалась в этом и заключалась - вместо того, чтобы обрабатывать только имя файла, я обрабатывал весь путь к файлу, а соответственно и все слеши.

Trianon, огромное вам спасибо.

  Ответить  
Rambler's Top100
вверх

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