Подключение js
Беда...
файл js.js alert("ура"); файл index <script type="text/javascript" src="./js.js"></script> // Работает )) Теперь ставим задачу скрыть имя скрипта, для этого используем самопальный кодировщик пхп, который каждый раз при загрузке страницы index кодирует имя скрипта случайным ключом: <script type="text/javascript" src="./codename"></script> ./codename - такой страницы нет -> переадрессация на index страницу на которой выполняется расшифровка ./codename в ./js.js и include("./js.js"); - alert() не работает (( Если вместо include делаем header("location:./js.js"); - работает. Но нужно именно include Этим подключением преследуется много целей и оно актуально для всего (для изображений и т.п.), но не работает только яваскрипт (ни в одном браузере (в ие не проверял)). |
Может это поможет
после <head> вставить <base href="http://tvoj-site.ru/"> |
Нет, это не помогает.
Если где-то я не очень понятно изложил суть проблемы, сообщите, я поясню. |
d-kaktus,
а посмотрите в firebug куда браузер ломится за скриптом? Имхо, дело всё же в путях и правилах редиректа (htaccess) |
Ответ Firebug - скрипт на странице есть.
Но он почему-то всё же не работает. При сохранении страницы в .mht этот код работает. <script src="5c5ee85cd4e6" type="text/javascript"> alert("ok"); </script> Не помогает и это header("Content-Type: text/javascript "); htaccess и пути ни при чём, т.к. всё настроено нормально - открывая в браузере (в данном случае) "http://mysite/5c5ee85cd4e6" открывается страница с alert("ok"); |
header("Content-Type: application/javascript"); readfile("./js.js"); |
Цитата:
|
Цитата:
|
<? include("./f.php"); $ri=explode("/",$_SERVER["REQUEST_URI"]); if(!empty($ri[2])){ // include("./".upk($ri[2])); header("Content-Type: application/javascript"); readfile("./".upk($ri[2])); exit(); } ?><html><head><title>ox</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head><body /> <script type="text/javascript" src="./<?=pk("js.js")?>"></script> </html> Функции pk() и upk() для шифрования и расшифровывания. Я надеюсь теперь вам будет очевидно, т.к. мне абсолютно непонятно. |
d-kaktus,
а о том как кавычки работают здесь подумать?не? Цитата:
|
dmitriymar,
тут нормально всё с кавычками, одни PHP съедает, вторые HTML-ю достаются. |
Это работает нормально, т.к. пхп возвращает в хтмл результат своей работы. Т.е. сначала работает пхп
<?=pk("js.js")?> А заем в хтмл передаётся результат <script type="text/javascript" src="./результат"></script> |
меня смущает точка пред объявлением рнр. да и кавычки смущают-непревычная запись ...
эт наверно потому, что с первого взгляда не ясно что там... |
Цитата:
d-kaktus, а на сервере в error_log ниче не попадает? меня смушает использование относительных путей в include и readfile это не всегда хорошо работает. Если все это лежит в той же папке просто напишите: readfile('test.js'); без каких либо точек. Либо используйте абсолютные пути. |
Использование абсолютных путей тоже не помогает решить задачу.
Error_log никаких ошибок не выдаёт |
а что ты видишь когда переходишь обычным образом в браузере по своей супер/пупер сгенереной ссылки?
|
Во-первых, таким образом должны шифроваться фотографии и т.п., а за одно и яваскрипт. Во-вторых, при подключении яваскрипта передаются функции только те, которые будут использоваться на странице. Остальные догружаются средствами аякс. Ссылки не шифруются таким образом.
Когда я в браузерную адресную строку вставляю адрес "http://mysite/test.js" или "http://mysite/codename" в браузер выводится одно и то же: alert("ок"); "супер/пупер сгенереной ссылки" - это о чём? |
ну если при обычном открытии вы видете свой JavaScript то тогда смотрите в строну заголовков. Посмотрите что присылает сервер. Может что-то лишнее шлет от того и не срабатывает ничего. Это можно взглянуть в средствах для разработчика, firebug, dragonfly и т.д.
|
Дело в том, я уже писал, firebug выводит как нормальный работающий скрипт. В этом и дело, что любой браузер видит обычный javascript, но не исполняет его. Но в чём дело не ясно...
|
Часовой пояс GMT +3, время: 05:24. |