Очень часто возникает
потребность передачи переменных скрипту на php. Самый
просто пример - заполнение какой-либо формы, например
формы с логином и паролем.
В данной статье мы рассмотрим самые распространенные и
доступные методы решения данной задачи.
Итак, прежде всего, давайте определимся с формой.
Например, ее html код может выглядеть следующий образом:
Раз вас заинтересовал вопрос передачи переменных на php, то вы уже знакомы с синтаксисом составления html форм, но все же мы немного рассмотрим открывающий тэг Form. В нашем случае он содержит два параметра:
method="post"
action="login.php"
Action указывает, на какой именно документ должна воздействовать форма (в нашем случае на login.php - ему и будут передаваться переменные). Параметр method указывает метод передачи переменных. В данном случае существует два таких метода: post и get.
Чем же они отличаются? Принцип их отличия лишь в одном - в методе передачи переменных. Если вы будите использовать метод get, переменные и их значения будут передаваться прямо в адресной строке, в нашем случае это будет строка вида:
login.php?login=введенное значение логина&pas=введенное значение пароля
В общем виде, такой метод передает переменные и их содержание по следующему синтаксису:
[адрес сайта][имя скрипта]?([переменная 1]=[значение переменной 1])&([переменная 2]=[значение переменной 2])...&([переменная N]=[значение переменной N])
Например, если ввести в нашу форму логин User и пароль 12345 и нажать на кнопку Ok, то откроется страница с адресом:
[адрес сайта, где размещен скрипт]login.php?login=User&pas=12345
Прежде, чем мы рассмотрим, как же принимать переменные на php методом get, давайте немного ознакомимся и с методом post.
Данный метод передает все данные в заголовках - специальных областях сетевых пакетов. Данный метод характеризуется полной прозрачностью для пользователя - он даже может и не заметить, что что-то передается от скрипта к скрипту.
Чтобы принять на php переданные переменные, не смотря на то, что этого иногда можно и не делать, все же лучше всего непосредственно указывать, откуда нужно брать их значение. А данные значения берутся из соответствующих массивов - для метода get это массив $_GET, для post - $_POST. Не забывайте, что в php имена переменных, написанные маленькими и большими символами являются различными переменными.
Например, чтобы в скрипте login.php принять переменные, которые ему передает наша форма, нам нужно взять их значения из соответствующего массива:
Аналогично нужно поступать и когда
используется метод get.
Какой метод передачи переменных в php лучше выбрать? Все
зависит от конкретных задач. Например, если это скрипт
форума - нужно использовать метод post иначе get будет
накладывать существенное ограничение - не забывайте, что
он передает имена и значения переменных через адресную
строку, максимальная длина которой ограничена 256
символами.
Если же вам нужно передавать какие-либо переменные для
перехода от страницы к странице удобней использовать
метод get - ведь передачу переменных в нем можно
осуществить, просто указав соответствующим образом адрес
скрипта (добавив к нему ?([переменная 1]=[значение
переменной 1])&([переменная 2]=[значение переменной
2])...&([переменная N]=[значение переменной N]) ).
Библиотека GTK+ прошла долгий путь развития и сейчас очень популярна. GNOME, одна из ведущих оконных сред, использует GTK+ почти исключительно, GIMP построен на GTK+, множество коммерческих разработчиков ПО, таких как Abobe, NVidia и VMware, решили использовать эту библиотеку в качестве графической основы для своих продуктов... подробнее
Slashdot.org – популярный новостной портал с посещаемостью 50 млн. человек в месяц. Авторы проекта добились такого успеха, предоставляя пользователям свежие и интересные новости из мира IT... подробнее
Здесь рассматривается вопрос, что бывает, если запустить некий скрипт почти одновременно (что происходит, например, при большой нагруженности сервера) несколько раз, т.е. запустить несколько копий одного и того же скрипта. И к чему это может привести... подробнее
...и снова о спаме. Кто о нем только не писал, и все писали, что это плохо и ай-яй-яй. Я не буду оригинальничать, и тоже скажу – это плохо. Это ай-яй-яй. Как бороться со спамерами со своей стороны... подробнее