Вредоносное ПО (malware) - это назойливые или опасные программы,...
Это довольно частый вопрос, который возникает в форумах. В принципе, любой человек способен самотоятельно разобраться. Но если есть вопрос то попробуем тут разобраться с ним.
Итак, есть браузер. Это программа, которая умеет html-файл показывать красиво на экране. Файл этот может быть взят браузером только из 2-х мест: из Интернета и с локального компьютера (либо сети).
Если браузер берет файлы с диска локального компьютера то этот файл может кто угодно модифицировать. Например, можно создать программу на Си или Паскале, которая запишет в html файл 1000 раз слово "привет". А потом браузер возмет файл и отобразит его на экране пользователя. Заметьте, браузеру по барабану, откуда файл возник. Его это не касается, он получает конечный html файл.
Если файл появляется из Интернета то браузер часто не знает о файле
совсем ничего: ни даты, ни размера (до полного скачивания), ни настоящего
имени. Если данный файл на сервере будет результатом работы какой либо
программы, то данное обстоятельство тоже ником образом не заденет
браузер (ему опять будет по барабану). На таком свойсте основаны
скрипт-языки. Если пометить в веб-каталог на сервере php-файл,
то браузер получит не его самого, а только результат работы PHP,
выполнившего php-файл.
Что такое JavaScript (JS)? Это тот же html. Другими словами
это некоторый набор дополнительных тегов и ничего более. Если
в какой либо работающей ПХП-программе заменить echo "Введите логин" на echo "document.write("Введите логин");"; ,
то данная операция никак не скажется на PHP программу.
В начале у вас в файле храниться echo .
При обращении пользователя к странице данная команда выполняется
PHP, который отдает браузеру результат работы. Т.е. ту строку,
которая была в echo .
Если в строке был JS-код, получиться, что браузер получит его.
Итак, что такое JS? Это, как мы выяснили, некий набор дополнительного
к чистому html коду текст, который поступает в html-файле в браузер
и там выполняется. Вот оно, что никто не желает понимать -
PHP работает на сервере, а JS только в браузере. А что у нас в браузере?
HTML код. И браузеру все равно, откуда он взялся. Браузер берет
html файл и отображает его на экране, вылняя теги, а еще попутно
JS-код.
Чтоже нужно, чтобы передеать в JS переменную из PHP? Прежде всего понимание, что вначале выполниться PHP, который создает html-страницу (а попутно может и JS код создать). Представьте, был у нас такой файл:
и теперь данную формулу считает PHP, а потом вставляет результат в нужное место html страницы. А то, что в результате получится объявление переменной JS программы, то просто положительный побочный эффект. PHP не волнует, что делает программа и зачем она считала сумму 2 и 3.
» |
Инструкция
Скрипты JavaScript - это сценарии, которые выполняется не на сервере, а непосредственно в браузере, поэтому их называют «клиентскими». Если скрипт попал к вам в виде отдельного файла с расширением "js", то подключить его к странице надо добавлением в заголовочную часть ее HTML-кода соответствующего тега со ссылкой на этот файл. Заголовочная - это та часть, которая начинается с тега и завершается тегом . Поэтому вы не ошибетесь, если найдете в коде страницы закрывающий тег и поместите перед ним такую ссылку на JavaScript-файл:Здесь в атрибуте src указано имя файла "script.js" - его вам надо заменить на имя вашего js-файла. Чтобы браузер мог найти и прочесть этот файл, его нужно поместить в ту же папку сервера, где лежит и сама страница. Если вы закачаете его в другое место - укажите соответствующий адрес вместе с именем файла в атрибуте src.Если JavaScript у вас есть не в отдельном файле, а просто в виде текста, начинающегося с тега
На что здесь стоит обратить внимание ? Кавычки . Если вы используете внешние кавычки в виде " ", то внутренние кавычки элементов должны быть " " и наоборот, иначе вы получите ошибку. Если вы принципиально хотите использовать одинаковые и внешние, и внутренние кавычки, то во внутренних ставьте знак экранизации:
В этом случае все будет работать корректно.
Второй вариант вставки элементов в PHP-кодЭтот вариант мне нравится куда больше, чем первый. Здесь мы будем также использовать «echo », как и в предыдущем варианте, но добавим еще элемент «HTML »:
Сюда вы можете вставлять любой элемент, будь то HTML-код или же JavaScript. Кавычки здесь не играют роли (можете вставить любые), а по желанию можно внедрить переменные для вывода:
Весьма удобный способ для реализации ваших идей.
В большинстве веб-приложений статические JavaScript-файлы устраивают разработчика на 100%. Однако же иногда бывает лучшим решением подключить PHP и сгенерировать содержимое JS-файла «на лету» (например, получить актуальные цены на продукты из БД и передать их JavaScript-программе для валидации формы заказа). Как же это сделать?
Способ первый: простой Конечно же, самое простое решение состоит в том, чтобы включить код PHP внутрь секции вашего HTML-шаблона, поскольку есть шансы, что у него будет расширение.php.
var jsVar = "";
Даже если расширение шаблона.htm или.html, то в большинстве случаев веб-сервер настроен так, чтобы понимать включения PHP-кода (если же нет, то в конце заметки есть простой пример как решить и эту проблему). Но что касается красоты, то этот вариант не самый изящный. Хорошо бы держать мух и котлеты раздельно.
AddType application/x-httpd-php .js AddHandler x-httpd-php5 .js
Pro et Contra: что нам это дает? Pro- Вы можете включать PHP-код в файлы с расширением.js и он автоматически выполнится при клиентском обращении к JavaScript-файлу.
- Вы можете держать такие «гибридные» скрипты в отдельной папке - достаточно в эту папку поместить описанный выше файл.htaccess.
- Если вы хотите держать все JavaScript-файлы в одном месте (статические и гибридные), то можете зарегистрировать обработчик файлов с произвольным расширением, например, .js2 - достаточно немного модифицировать текст.htaccess.
- Вы можете разделить статические HTML-страницы, шаблоны и JavaScript-файлы.
- Теоретически это вызовет минимальную дополнительную нагрузку на работу сервера, но, учитывая вариации с отдельными папками или расширениями файлов, польза кажется превосходящей.
AddType application/x-httpd-php .htm .html
AddHandler x-httpd-php5 .htm .html
SetHandler application/x-httpd-php
Замечания, дополнения и обмен опытом приветствуются.