РНР программирование

 

   Главная          Программа телепередач, энциклопедии и многие другие справочные материалы

 

стр. 1. 2. 3

При конфигурировании Apache (в файле httpd.conf) добавте в строке:

AddType application/x-httpd-php .php .php5 .phtml - расширения .htm  и .html и тогда Вы сможете обрабатывать движком php файлы с этими расширениями. Эта страка будет иметь вид: AddType application/x-httpd-php .php .php5 .phtml .htm  и .html

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

 

Работа с формами в html-программировании

 

Значения переменных можно передавать между различными страницами сайта - с помощью использования форм. Формой называется конструкция, состоящая из поименованных элементов особых типов, заключенных между HTML-тэгами . В качестве элементов формы могут выступать поля ввода текста, кнопки, выпадающие меню, переключатели, квадратики для отметки галочкой, а также картинки формата jpg или gif. Каждый элемент формы может иметь свое имя.
 

Наиболее важным свойством формы является то, что в ее заголовке в открывающем тэге можно указать адрес какого-либо файла. В этом случае при загрузке этого файла в программный код, если он будет там присутствовать, передадутся значения всех переменных, установленных в этой форме, в частности, значения всех элементов формы, как если бы эти значения были установлены в программе, расположенной в самом загружаемом файле. Таким образом, можно передавать значения переменных между различными web-страницами, используя их в программном коде.
Во всех версиях РНР имена передаваемых переменных соответствуют тем именам, которые были даны элементам формы в их тэгах.   Значения переменных  - соответственно значениям этих элементов (если в конфигурационном файле РНР - php.ini - параметр register_globals установлен в on.). 

Для поля ввода текста - введенному тексту, для переключателя или checkbox – "True" при отмеченном и ""e при неотмеченном, для рисунка - координаты указателя мыши относительно верхнего левого угла изображения, для выпадающего меню (элемент ) - значение параметра value выбранного пункта option.
 

Кроме того, переменные, передаваемые через форму, помещаются в ассоциативные суперглобальные массивы $_POST и $_GET (если в конфигурагцюнном файле РНР - php.ini - параметр track_vars установлен в on) с именами элементов, соответствующими именам переменных (т. е. содержимое поля ввода текста окажется в элементе $_POST['qwerty']).

 

Массив $_POST содержит переменные, переданные с помощью метода POST (метод указывается в заголовке формы), а $_GET - метода GET. Различие между методами состоит в том, что при передаче данных методом GET эти данные отображаются в адресной строке браузера, а при использовании метода POST - нет.

Передача данных между страницами

Cookies

Для передачи данных между страницами можно использовать cookies - файлы, пересылаемые web-сервером браузеру посетителя и сохраняемые им на компьютере посетителя. Все современные браузеры поддерживают cookie.
Установив cookie на одной из страниц сайта (подробнее о cookies рассказывалось в гл. 8), вы можете использовать записанные в него переменные на всех остальных страницах сайта (расположенные на том же Интернет-узле - т. е. с тем же доменным именем).
При установке cookie ему дается определенное имя. Впоследствии сценариям на всех страницах этого Интернет-узла браузер посетителя передает при заходе на них переменную, одноименную с этим cookie и содержащую записанные в cookie данные (если в файле php.ini установлен в on параметр register_globals). Кроме того, сценарии на РНР могут получать данные cookie из массива $HTTP_COOKIE_VARS [ 'имя cookie '],ав РНР версий 4.1 и выше - еще и из массива $_СООК
IЕ [' имя переменной' ] (если в файле php.ini установлен в on параметр track_vars).
Если сведения, передаваемые через cookie, нужно защитить от подделки (т. е., скажем, обеспечить их получение только из cookie и никоим образом не из адресной строки, куда значения одноименных с сохраненных в cookie переменных злоумышленник может подставить), то в сценарии, где используются переменные из cookies, следует их считывать только из упомянутых массивов, а не из одноименной cookie переменной. В указанные массивы попадают исключительно те данные, которые сохранены в cookies.
Одновременно можно устанавливать как один, так и несколько cookies.
Данный способ подойдет тогда, когда данные, введенные на одной странице, могут потребоваться на прямо не связанной с ней другой. Ограничения же связаны с особенностями cookie: количество информации в cookie не может превышать 4 килобайта, cookie может похитить с компьютера посетителя любой, кто за него сядет. Кроме того, некоторые пользователи Интернета отключают cookie при путешествиях по Сети, что не дает возможности использовать данный способ абсолютно для всех посетителей.
Помните, что отправка и чтение cookie должны производиться до какого бы то ни было вывода в документ.
 

Сессии (это очень интересно)

Передача информации между страницами возможна с помощью механизма работы с сессиями. Смысл его в том, что значения определенных переменных сохраняются в файле в папке временных файлов сервера, а посетителю отправляется в cookie уникальный идентификатор этого файла (или, если браузер посетителя cookie не принимает, идентификатор присоединяется ко всем ссылкам на сайте, ведущим на другие его страницы). Впоследствии при получении от посетителя идентификатора сессии (имя cookie, содержащего его, жестко определяется в настройках web-сервера) в том случае, если в папке временных файлов существует соответствующий этому идентификатору файл, этот файл считывается и значения всех переменных, указанные в нем, передаются сценариям на страницах сайта.
Открыв сессию командой session_start ()1 и зарегистрировав для сессии нужные переменные командой session_register (), можно в сценариях на других страницах сайта (после вызова той же команды session_start ()) работать с этими переменными, как если бы они были определены и установлены в этих же самых сценариях. (Подробнее о данных командах и особенностях их использования в зависимости от настроек файла php.ini читайте в Описании РНР.)
Кроме того, все эти переменные доступны как элементы массивов $HTTP_SESSION_VARS и (в РНР 4.1) $_SESSION (использовать эти массивы предпочтительнее, так как при этом отсутствует риск передачи значений переменных сценарию-обработчику путем указания их значений в адресной строке при неоткрытой сессии).

Если в php.ini установлен в on параметр session.auto start, то открывать сессию для ее использования не обязательно - достаточно лишь зарегистрировать нужные переменные командой sessionregister, чтобы они сохранялись в качестве сессионных.

Пользовательская форма

При нажатии кнопки типа submit в пользовательской форме данные, введенные в ее поля, передаются сценарию, расположенному в параметре action заголовке формы страницы. Они доступны в этом сценарии в переменных, одноименных с соответствующими элементами формы (если в файле php.ini установлен в on параметр register_globals), а также через массивы $ _POST (если в файле php.ini установлен в on параметр track_vars). В форме также могут быть указаны скрытые поля - т. е. поля типа hidden. В эти поля посетитель не может вводить свою информацию, однако данные, указанные в их параметрах value, отправляются вместе с формой сценарию-обработчику.
Принцип передачи данных по страницам с помощью формы прост: один скрипт выводит на страницу в форму скрытые поля с нужными данными, а другой скрипт - обработчик формы - их использует. Недостаток этого способа ясен: данные скрытых полей можно узнать, просмотрев исходный код страницы с формой, так что защита от подделки и, вообще, какая-либо конфиденциальность здесь отсутствует.

Установленные переменные

(только для переменных авторизации - $php_auth_user и $php_auth_pw)

Две строчки введенной посетителем информации можно передать между страницами и с помощью авторизационных переменных -$PHP_AUTH_USER и $PHP_AUTH_PW. Будучи раз определенными, эти переменные сохраняют свое значение до закрытия того окна браузера, в котором они были введены, и всех окон, из этого окна открытых по ссылкам. Однако получить от посетителя те данные, которые планируется записать в эти переменные, можно только с помощью специального диалогового окна авторизации и только до начала вывода web-страницы, на которой эти данные запрашиваются.
Так что, как видите, способов много. Выбирайте на вкус. Наиболее многообещающим представляется использование сессий, хотя и без данного механизма РНР предоставляет немало возможностей.

главная                                                                                                                              стр. 1. 2. 3

                                                                                                

 

1. Что такое PHP?

1. 1. Применение РНР при программировании сайтов

1.2. Программа регистрации и авторизации на вашем сайте

1.3. Программа регистрации и авторизации на сайте с шифрованием пароля

2. Глава посвящена программированию
вообще и программированию в частности
сайтов

3. MySQL элементы управления и взаимодействие с PHP

4. Русский перевод файла "httpd.conf" Для Apache 2.0

5. Русский перевод файла "php.ini"