Статьи

Технологія PHP. PHP і JavaScript

  1. Передача змінних з JavaScript в PHP
  2. файл index.html
  3. файл view.php

Мова PHP призначений для написання скриптів, які виконуються на стороні сервера, а в браузер клієнта відправляється не саме скрипт, а тільки результати його роботи. Це означає, що користувач, що завантажив сторінку вашого сайту, ніколи не побачить вихідний код скрипта і може навіть не здогадуватися, що сторінка створена динамічно.

У свою чергу, на мові JavaScript створюються виключно клієнтські скрипти, які виконуються в браузері клієнта. Для сервера скрипти JavaScript - це звичайні текстові дані, які нічим не відрізняються від іншого вмісту сторінки.

Розрізняються мови і за рівнем безпеки. При виконанні PHP-скрипта ви можете звертатися до файлової системи сервера, баз даних і інших зовнішніх об'єктів, на які вам надали права адміністратори. А ось JavaScript обмежений тільки вбудованими об'єктами браузера і з їх допомогою ви не зможете читати або писати безпосередньо на диск. Зроблено це в першу чергу для захисту від зловмисників, тому що якщо дозволити доступ скриптів до системної інформації і файлів - обов'язково знайдеться умілець, який напише код, потай відсилає ваші файли гаманців, логіни, паролі та іншу закриту інформацію на адресу умільця.

Крім іншого, протокол HTTP, по якому передаються всі веб-сторінки, не підтримує постійних з'єднань, тобто браузер підключається до сервера, запитує сторінку, отримує дані і негайно відключається. Це означає, що всі скрипти PHP завершуються ще ДО того, як почнуться виконуватися скрипти JavaScript.

Таким чином, сам собою напрошується висновок: пряму взаємодію скриптів на PHP і JavaScript просто неможливо.

Але не все так фатально, опосередковану взаємодію ми забезпечити все-таки можемо. Для передачі даних між клієнтської і серверної стороною можна використовувати один з трьох варіантів:

  1. Внесення змін до тексту сторінки (в скрипт);
  2. Використання Cookies;
  3. Використання Ajax;

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

<Html> ... &lt;script type = "text / javascript"> <? Php If ($ login == "admin") echo "var isAdmin = true" else echo "var isAdmin = false"?> If (isAdmin) Document. write ( "Я адміністратор"); Else Document.write ( "Я користувач"); </ 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, їх підтримка браузерами, формат даних, кодування і т.п.

Артем'єв Сергій Ігорович

Передача змінних з JavaScript в PHP

Розглянемо особливості роботи зі скриптами JavaScript у PHP. На відміну від PHP, скрипти JavaScript виконуються на машині клієнта, в той час як PHP серверний мова програмування. На відміну, від технології Java або ASP.NET він не має в своєму складі засобів для роботи на стороні клієнта. Тому для створення ефективних Web-додатків необхідно комбінувати PHP і JavaScript скрипти. Існує дві можливості такої взаємодії: передача змінних з JavaScript в PHP і динамічне формування скриптів JavaScript засобами PHP.

Однією з поширеною задачею є визначення дозвіл екрану і глибину кольору монітора відвідувача сторінки засобами JavaScript з подальшою передачею цих дані в PHP-скрипт.

Це досить часто зустрічається завдання, особливо при написанні лічильників відвідувань і створення "динамічного дизайну".

Скрипт JavaScript, що виконує необхідні дії, розміщений файлі index.html, вміст якого наведено в наступному лістингу:

файл index.html

<Script Language = "JavaScript"> var height = 0; var width = 0; colorDepth = screen.colorDepth; if (self.screen) {width = screen.width height = screen.height} else if (self.java) {var jToolKit = java.awt.Toolkit.getDefaultToolkit (); var scrsize = jToolKit.getScreenSize (); width = scrsize.width; height = scrsize.height; } If (width> 0 && height> 0) {// Виробляємо перенаправлення на скрипт counter.php, передаючи в // змінної scrsize рядок, що містить значення width, // height і colorDepth. window.location.href = "http: //localhost/view.php? width =" + width + "& height =" + height + "& color =" + colorDepth; } Else exit (); </ Script>

Після виконання цього коду відбувається автоматичний перехід на сторінку view.php, в якому відбувається висновок дозволу екрану і глибини кольору у вікно браузера (див. Лістинг нижче).

Отриману інформацію можна поміщати в базу даних для набору статистики про найбільш поширених дозволах екранів, відвідувачів сайтів.

файл view.php

<? Php echo "Ширина:". $ _GET [ 'width']; echo "Висота:". $ _GET [ 'height']; echo "Кольорове <sup> дозвіл </ sup>:". $ _GET [ 'color']; ?>

Як видно, робота з даними з JavaScript, аналогічна роботі з даними, що відправляються методом GET.


Чи знаєте Ви, що спостерігачі - це операції, які використовують в якості аргументу об'єкти відповідного їм типу і повертають елемент іншого типу, вони використовуються для отримання інформації про об'єкт. Сюди відносяться, наприклад, операції типу size.

НОВИНИ ФОРУМУ НОВИНИ ФОРУМУ   Лицарі теорії ефіру 13
Лицарі теорії ефіру 13.06.2019 - 5:11: ЕКОЛОГІЯ - Ecology -> ПРОБЛЕМА ГЛОБАЛЬНОЇ ЗАГИБЕЛІ бджіл ТА ІНШИХ запилювачів РОСЛИН - Карім_Хайдаров.
12.06.2019 - 9:05: ВІЙНА, ПОЛІТИКА І НАУКА - War, Politics and Science -> Проблема державного тероризму - Карім_Хайдаров.
11.06.2019 - 18:05: ЕКСПЕРИМЕНТАЛЬНА ФІЗИКА - Experimental Physics -> Експерименти Серлі і його послідовників з магнітами - Карім_Хайдаров.
11.06.2019 - 18:03: ВИХОВАННЯ, ОСВІТА, ОСВІТА - Upbringing, Inlightening, Education -> Просвітництво від Андрія Маклакова - Карім_Хайдаров.
11.06.2019 - 13:23: ВИХОВАННЯ, ОСВІТА, ОСВІТА - Upbringing, Inlightening, Education -> Просвітництво від В'ячеслава Осієвського - Карім_Хайдаров.
11.06.2019 - 13:18: ВИХОВАННЯ, ОСВІТА, ОСВІТА - Upbringing, Inlightening, Education -> Просвітництво від Світлани Віслобоковой - Карім_Хайдаров.
11.06.2019 - 6:28: Астрофізики - Astrophysics -> До 110 річчя Тунгускою катастрофи - Карім_Хайдаров.
10.06.2019 - 21:23: ВИХОВАННЯ, ОСВІТА, ОСВІТА - Upbringing, Inlightening, Education -> Просвітництво від Володимира Васильовича Квачкова - Карім_Хайдаров.
10.06.2019 - 19:27: СОВІСТЬ - Conscience -> Вищий розум - Карім_Хайдаров.
10.06.2019 - 19:24: ВІЙНА, ПОЛІТИКА І НАУКА - War, Politics and Science -> ЗА НАМИ страви - Карім_Хайдаров.
10.06.2019 - 19:14: СОВІСТЬ - Conscience -> РОСІЙСЬКИЙ СВІТ - Карім_Хайдаров.
10.06.2019 - 8:40: ЕКОНОМІКА І ФІНАНСИ - Economy and Finances -> КОЛЛАПС СВІТОВОЇ ФІНАНСОВОЇ СИСТЕМИ - Карім_Хайдаров.

Lt;script type = "text / javascript"> <?
Php If ($ login == "admin") echo "var isAdmin = true" else echo "var isAdmin = false"?
Php // при виконанні скрипта на сервері зберігаємо // дані в cookie setcookie (...); ?
Php?
GET [ 'color']; ?

Новости

Как создать фото из видео
Кризис заставляет искать дополнительные источники дохода. Одним из таких источников может стать торговля на валютном рынке Форекс. Но чтобы не потерять свои деньги необходимо работать с надежным брокером.

Как оформить группу в вконтакте видео
Дано хотел свой магазин в вк, но не знал с чего начать его делать. Так как хотелось не банальный магазин с кучей ссылок и фото, а красиво оформленный. С меню, с аватаркой. После просмотра видео создал