Подключение 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, время: 11:30. |