webew
Войти » Регистрация
 
PHP

Гиперссылка не работает

26 декабря 2008, 17:11
Автор: mbrost
В таблице MySql в поле таблицы сохраняю путь к файлу (C:/222/Решение 1.doc), с помощью Select выбираю нужные документы, их нужно открыть.
Почему такая ссылка работает
<A href="<?php echo $rrr; ?>"> ТО ЧТО НАДО </A> -
если
$rrr="http://localhost/Решение 1.doc";
и не работает -
если
$rrr="C:/222/Решение 1.doc"или $rrr="file://C:/222/Решение 1.doc"
Причем, дома (пиратская ОС ХР sp1 IE v.6.0) все работает - файл открывается, на работе -лиценз. XP sp3 IE 7 - не переходит, никаких сообщений,
на сервере Micr. Serv. Wind. 2003 IE 6.0 – сообщение “у вас нет прав доступа к этой странице”.
Все установлено одинаково MySql, Apache, PHP
Что нужно сделать?
Добавить комментарий
Отображение комментариев: Древовидное | Плоское
NO USERPIC

rgbeast

Наверное у пользователя действительно нет прав открыть файл напрямую - нужно добавить ему права. Не стоит в веб-интерфейс впутывать ссылки на локальные файлы, это приводит к неясной политике безопасности приложения.
26.12.2008, 17:47
Ответить
NO USERPIC

mbrost

Так вхожу и под администратором домена на сервере, а на раб. станции тоже администратор, и поиск такой делается для пользователей, Что делать или я что-то не ткак формулирую?? пожалуйста
26.12.2008, 18:19
Ответить

paulus

Подозреваю, что Вы пытаетесь открыть в одном случае страничку локально (file://),
а в другом случае - через http. Соответственно, браузер не позволяет обращаться
к ресурсам file://, если сама страница загружена по http.

Это правильное ограничение (которого раньше не было, кстати), иначе можно
было сделать <iframe src="file://c:/"/> и написать "установите нашу программу, иначе
мы видим Ваш жесткий диск" - и люди ставили троянов. Со включенным ограничением
такое уже сделать нельзя. И обойти ограничение тоже нельзя.

Правильное решение - таки раздавать документ по http.
26.12.2008, 18:46
Ответить

paulus

Кстати, я подумал, что, возможно, дело не в ограничении, а в URL. Попробуйте file:///222/Решение 1.doc. Если пустит - дело в двоеточии имени диска.

Тем не менее - правильно раздавать документ по http.
26.12.2008, 18:47
Ответить
NO USERPIC

Sign

Правильно ли я понял что Вам доступ к файлу нужен с другой машны?
Если же нет, и всё локально, то зачем Вам Apache? ; )

Раздавать по http не просто правильно. Когда Вы на машине А открываете страницу с машины B в которой есть ссылка file://bla-bla-bla - эта ссылка ведёт не на машину B (на которой находится страница), а на локальный ресурс машины A за который Вы сидите.

Обычно в таких случаях в базе сохраняют относительный путь к файлу, например относительно корня Вашего web-сервера, типа '/files/fileName.ext'. Тогда будут работать и ссылки от корня сайта ($rrr="/files/fileName.ext";) и с именем хоста ($rrr='http://'. $_SERVER['HTTP_HOST']. "/files/fileName.ext")

P.S русские имена файлов в вебе - это зло)
27.12.2008, 04:11
Ответить
NO USERPIC

mbrost

спасибо за ответы
а где вообще правильно хранить все документы, к которым осуществляется переход по гиперссылке?
сейчас при переходе к документам, хранящимся в каталоге \Apache Software Foundation\Apache2.2\htdocs\123 - ошибка 403 - все установлено под администратром домена - каких прав не хватает - что-то с Apache или групповые политики серверной ОС надо смотреть?
12.01.2009, 11:56
Ответить
Добавить комментарий
Отображение комментариев: Древовидное | Плоское
© 2008—2017 webew.ru, связаться: x собака webew.ru
Сайт использует Flede и соответствует стандартам WAI-WCAG 1.0 на уровне A.
Rambler's Top100