Основы PHP
  Что такое PHP?
  Возможности PHP
  Преимущества PHP
  История развития
  Что нового в PHP5?
  «Движок» PHP
  Переход на PHP 5.3
New Переход на PHP 5.6
  Введение в PHP
  Изучение PHP
  Основы CGI
  Синтаксис PHP
  Типы данных PHP
  Переменные в PHP
  Константы PHP
  Выражения PHP
  Операторы PHP
  Конструкции PHP
  Ссылки в PHP
  PHP и ООП
  Безопасность
  Функции PHP
  Функции по категориям
  Функции по алфавиту
  Стандартные функции
  Пользовательские
  PHP и HTTP
  Работа с формами
  PHP и Upload
  PHP и Cookies
  PHP и базы данных
  PHP и MySQL
  Документация MySQL
  Учебники
  Учебники по PHP
  Учебники по MySQL
  Другие учебники
  Уроки PHP
  Введение
  Самые основы
  Управление
  Функции
  Документация
  Математика
  Файлы
  Основы SQL
  Дата и время
  CURL
  Изображения
  Стили
  Безопасность
  Установка
  Проектирование БД
  Регулярные выражения
  Подготовка к работе
  Быстрый старт
  Установка PHP
  Установка MySQL
  Конфигурация PHP
  Download / Скачать
  Скачать Apache
  Скачать PHP
  Скачать PECL
  Скачать PEAR
  Скачать MySQL
  Редакторы PHP
  Полезные утилиты
  Документация
  PHP скрипты
  Скачать скрипты
  Инструменты
  PHP в примерах
  Новости портала
 Главная   »  Изучение PHP  »  Переменные языка PHP  »  Внешние переменные (переменные вне PHP)
 
 

Внешние переменные (переменные вне PHP)

Web-программирование в большей части представляет собой как раз обработку различных данных, введенных пользователем — т. е., обработку HTML-форм.
Пожалуй, нет другого такого языка, как PHP, который бы настолько облегчил вам задачу обработки и разбора внешних переменных, т.е. переменных, которые поступили из HTML-форм (из браузера пользователя). Дело в том, что в язык PHP встроены все необходимые возможности, так что вам не придется даже и задумываться над особенностями протокола HTTP и размышлять, как же происходит отправка и прием POST-форм или даже загрузка файлов.Разработчики PHP все предусмотрели.

Здесь мы не будем подробно останавливаться на механизе работы протокола HTTP, который отвечает за доставку данных из браузера на сервер и обратно, этому посвящен специальный раздел PHP и HTTP. Там же глубоко рассмотрены принципы работы с HTML-формами.

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

Для того, чтобы принимать данные от пользователей, нам необходимо интерактивное взаимодействие с ними.

А теперь попробуем написать сценарий, который принимает в параметрах имя пользователя и выводит:

"Привет, <имя>!".

Сначала рассмотрим наиболее простой способ передачи имени сценарию — непосредственный набор его в URL после знака ? — например, в формате name=имя. Вот пример:

http://localhost/script.php?name=имя

Наш сценарий должен распознать параметр name. То есть, говоря проще, сценарий (скрипт) должен принять параметр name в виде переменной name, а затем вывести в браузер пользоватея строку "Привет, <имя>!". Сделать это можно таким образом:

Пишем скрипт, принимающий параметр name и выводящий результат в браузер пользователя, а затем сохраняем его под именем script.php:

<?php
echo "Привет, $_GET['name'] !";
?>

В нашем примере мы использовали предопределенную переменную $_GET['name'], чтобы "принять" параметр name. Теперь, передав через GET-запрос параметр name=Саша, мы получим следующий результат:

Привет, Саша !

А теперь попробуем передать параметр name не из строки запроса браузера, а через HTML-форму. Создаем HTML-документ следующего содержания:

<form action="http://localhost/script.php" method="GET">
Name: <input type=text name=name><br><input type=submit value="GO!">
</form>

Теперь сохраним данный HTML-документ на нашем тестовом сервере (localhost) под именем send.html в той же директории, где у нас уже сохранен сценарий script.php.

Теперь запускаем HTML-документ в браузере:

http://localhost/send.html

Вводим имя в поле и нажимаем кнопку "GO!". Форма передаст через GET-запрос параметр name нашему скрипту script.php. Если вы все сделали правильно и ваш web-сервер работает нормально, вы увидете введенное вами в поле формы имя! В адресной строке браузера вы увидете путь и переданный вами параметр name.

Теперь мы должны понять, как мы можем передать множество параметров, для начала хотя-бы два.

Итак, нам нужно, чтобы скрипт выводил следующее:

"Привет, <имя>! Вам <возраст> лет!".

То есть нам нужно передать в скрипт 2 параметра: name и age.

Теперь мы напишем скрипт script.php, принимающий два параметра: name и age, а также HTML-документ с формой, которая эти два параметра будет передавать в наш новый скрипт:

<?php
echo "Привет, $_GET['name'] ! Вам $_GET['age'] лет !";
?>

А вот и HTML-документ send.html, с помощью которого мы параметры name и age передадим нашему скрипту:

<html><body>
<form action="script.php">
Введите имя: <input type=text name="name"><br>
Введите возраст: <input type=text name="age"><br>
<input type=submit value="GO!">
</form>
</body></html>

Теперь наш скрипт принимает два параметра name и age и выводит в браузер результат формата: "Привет, <имя>! Вам <возраст> лет!".

Обратите внимание на адресную строку браузера после передачи параметров сценарию, она будет выглядить примерно следующим образом (без URL-кодирования кириллицы):

http://localhost/script.php?name=Саша&age=23

В зависимости от установок вашего интерпретатора, существует несколько способов доступа к данным из ваших HTML-форм. Вот несколько примеров:

<?php
// Доступно, начиная с PHP 4.1.0

echo $_GET['username'];
echo $_POST['username'];
echo $_REQUEST['username'];

import_request_variables('p', 'p_');
echo $p_username;

// Доступно, начиная с PHP 3. Начиная с PHP 5.0.0, эти длинные предопределенные
// переменные могут быть отключены директивой register_long_arrays.

echo $HTTP_GET_VARS['username'];

// Доступно, если директива PHP register_globals = on. Начиная
// с PHP 4.2.0, значение по умолчанию register_globals = off.
// Использование/доверие этому методу непредпочтительно.

echo $username;
?>

Подробно о формах, методах передачи параметров в PHP сценарии можно найти здесь

Подробную информацию по протоколу HTTP, по методам передачи запросов GET и POST вы можете найти здесь

 <<< Назад
(Статические переменные в PHP) 
 Содержание 
 Вперед >>>
(Операции с переменными PHP (операторы)) 

Есть еще вопросы или что-то непонятно - добро пожаловать на наш  форум портала PHP.SU 
 

 
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS