Обучение HTML, Excel, Word. Как сделать свой сайт бесплатно

Microsoft Office

Сайтостроение

HTML

Программинг

Компьютер

Графика

Разное

· Основы Word
· Основы Excel
· Основы VBA
· Основы OpenOffice
· Как сделать сайт
· Свой сайт от А до Я
· Оптимизация сайта
· Шаблоны для сайта
· Обзор CMS
· Основы HTML
· HTML-теги
· Основы CSS
· Основы PHP
· Основы JavaScript
· Софт для сайта
· Что внутри ПК
· ПК для чайников
· Все о BIOS
· Web-графика
· САПР: AutoCAD
· Статьи
· Форум
· SEO-новости
Главная страница Карта сайта
Учебник PHP
Основы SQL
  1. Введение
  2. Инструменты
  3. Первый шаг
  4. Структура языка
  5. Массивы
  6. Глобальные массивы
  7. Cookies
  8. Сессии
  9. Загрузка файлов
  10. Работа с файлами
  11. Работа с базами данных
  12. Работа в сети
  13. Отправка почты
  14. Безопасность
  15. Автоматизация
  16. Регулярные выражения в PHP
  17. Интеграция
 



Взаимодействие PHP и JavaScript

Автор: Артемьев Сергей Игоревич
ICQ: 438856621
email: _spin_@bk.ru

Язык PHP предназначен для написания скриптов, которые выполняются на стороне сервера, а в браузер клиента отправляется не сам скрипт, а только результаты его работы.  Это означает, что пользователь, загрузивший страницу вашего сайта, никогда не увидит исходный код скрипта и может даже не догадываться, что страница создана динамически.

В свою очередь, на языке JavaScript создаются исключительно клиентские скрипты, которые исполняются в браузере клиента. Для сервера скрипты JavaScript – это обычные текстовые данные, ничем не отличающиеся от прочего содержимого страницы.


Различаются языки и по уровню безопасности. При выполнении PHP-скрипта вы можете обращаться к файловой системе сервера, базам данных и другим внешним объектам, на которые вам предоставили права администраторы. А вот JavaScript ограничен только встроенными объектами браузера и с их помощью вы не сможете читать или писать непосредственно на диск. Сделано это в первую очередь для защиты от злоумышленников, т.к. если разрешить доступ скриптам к системной информации и файлам – обязательно найдётся умелец, который напишет код, скрытно отсылающий ваши файлы кошельков,  логины, пароли и другую закрытую информацию на адрес умельца.


Помимо прочего, протокол HTTP, по которому передаются все веб-страницы, не поддерживает постоянных соединений, т.е. браузер подключается к серверу, запрашивает страницу, получает данные и немедленно отключается. Это означает, что все скрипты PHP завершаются ещё ДО того, как начнутся выполняться скрипты JavaScript.

Таким образом, сам собой напрашивается вывод: прямое взаимодействие скриптов на PHP и JavaScript попросту невозможно.

Но не всё так фатально, косвенное взаимодействие мы обеспечить всё-таки можем. Для передачи данных между клиентской и серверной стороной можно использовать один из трёх вариантов:

  1. Внесение изменений в текст страницы (в скрипт);
  2. Использование Cookies;
  3. Использование Ajax;

Первый способ пригоден только для передачи данных и параметров с сервера на клиент. Суть метода проста: при генерации страницы необходимые параметры зашиваются прямо в текст скрипта.

<html>
  …
  <script type=”text/javascript”>
  
  <?php
  	If ( $login == ”admin” )
  		echo “var  isAdmin=true”
  	else  echo ”var isAdmin=false”
  ?>
  
  If(isAdmin)
  	Document.write(“Im  Administrator”);
  Else
  	Document.write(“Im  user”);
  </script>
  …
  

В этом примере мы на этапе формирования страницы вписываем в неё заданную переменную с нужным нам значением. Работает это так:

  1. От пользователя поступает запрос на получение страницы.
  2. Запускается PHP и начинает выполнять соответствующий скрипт.
  3. В процессе выполнения скрипт создаёт HTML-страницу, содержащую скрипт JavaScript. Как я уже упоминал раньше, создаваемая веб-страница с точки зрения сервера – обычный текст, который можно перед отправкой пользователю править как угодно.
  4. Готовая страница передаётся в браузер пользователя.
  5. По окончании загрузки страницы в браузер начнёт выполнение наш JavaScript. При этом скрипт не будет «знать», каким образом он составлен – вручную программистом или автоматически скриптом. Главное – скрипт должен быть синтаксически верен и работоспособен.

Второй способ несколько сложнее, но позволяет передавать параметры как со стороны сервера, так и со стороны клиента. Суть в том, что и PHP и JavaScript позволяют читать и сохранять cookies (подробнее про cookies рассказывалось в одном из предыдущих уроков). Например (условный):

<html>

<?php // при выполнении скрипта на сервере сохраняем // данные в cookie setcookie(…); ?> <script> // а этот фрагмент будет выполнен после // загрузки страницы // надо лишь считать cookie getcookie(…); </script>

Здесь мы на стороне сервера устанавливаем cookie с необходимыми нам параметрами. При этом клиенту посылается специальным образом сформированная команда и данные, т.е. все cookie передаются ДО передачи основной страницы. Это значит, что все установленные сервером cookie будут доступны после загрузки страницы, а значит и при выполнении скриптов JavaScript.

Аналогично и для обратной передачи: все cookies, установленные из JavaScript, будут переданы на сервер при первом же обновлении страницы.

Основной недостаток этого метода – ограничение на размер передаваемых данных. Максимальный размер одного cookie не может превышать 4Кб, а у некторых пользователей возможность установки cookies вообще отключена. Так же этот способ создаёт большой дополнительный трафик, т.к. все cookies автоматически отправляются на сервер при каждом обновлении страницы.

У обоих методов взаимодействия есть два общих недостатка:

  1. Все обновления и изменения происходят только при загрузке/обновлении страницы. Это очень неудобно, особенно когда приходится заполнять громоздкие и сложные формы с динамическим содержимым, когда состав и содержимое полей изменяется в зависимости от уже введённых данных.
  2. Программист должен достаточно хорошо разбираться как в PHP, так и в JavaScript, чтобы грамотно написать клиентские и серверные скрипты.

Последний способ взаимодействия – AJAX. Это наилучший, пусть и не самый простой способ. Ajax – это комбинированная технология, использующая все преимущества PHP и JavaScript, позволяя изменять и обновлять данные на страницах вашего сайта «на лету», т.е. без перезагрузки страницы.

Для использования Ajax обычно создаётся так называемые "frontend" и "backend". Backend – это PHP-скрипты, выполняющиеся на сервере. Обычно такие скрипты возвращают структурированные блоки данных (массивы), не содержащие никакого оформления.

Frontend – это скрипты JavaScript, выполняющиеся в браузере пользователя.  Основное их назначение – вызвать требуемый скрипт backend`a, получить данные и правильно их вывести на странице, добавив при необходимости обрамление из тегов и стилей.

Подробнее об использовании Ajax вы можете прочитать в соответствующем уроке по JavaScript на этом сайте.

Таким образом, взаимодействие PHP и JavaScript наладить всё-таки можно, но для этого надо хорошо разбираться в обоих языках. Из собственного опыта могу сказать, что для домашних страничек и небольших сайтов проще всего применять первый способ (прямую запись текста скрипта). Для проектов покрупнее или динамичнее – Ajax. А вот от третьего способа я бы рекомендовал вам воздержаться, т.к там слишком много подводных камней и условностей, таких как размер cookie, их поддержка браузерами, формат данных, кодировка и т.п.

top




 




Спасибо, что заглянули на сайт. Надеюсь, Вам понравилось. Заходите еще. Здесь всегда рады вам :)
При копировании материалов, размещенных на сайте, ссылка на первоисточник обязательна.
Если понравился этот сайт..

© 2005-2012
Юрий Кордык All Rights Reserved

 

E-mail:
admin@on-line-teaching.com