Передача переменных в PHP
Очень часто возникает потребность передачи переменных скрипту на php. Самый простой пример - заполнение какой-либо формы, например, формы с логином и паролем.
В данной статье мы рассмотрим самые распространенные и доступные методы решения данной задачи.
Итак, прежде всего, давайте определимся с формой. Например, ее html код может выглядеть следующим образом:
<form method="post" action="login.php">
Логин:<br>
<input type="text" name="login"><br>
Пароль:<br>
<input type="password" name="pas"><br>
<input type="submit" value="Ok">
</form>
Результат компиляции данного 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 принять переменные, которые ему передает наша форма, нам нужно взять их значения из соответствующего массива:
<?php
//...
$login = $_POST['login']; //логин
$pas = $_POST['pas']; //пароль
//...
?>
Аналогично нужно поступать и когда используется метод get.
Какой метод передачи переменных в php лучше выбрать? Все зависит от конкретных задач. Например, если это скрипт форума - нужно использовать метод post иначе get будет накладывать существенное ограничение - не забывайте, что он передает имена и значения переменных через адресную строку, максимальная длина которой ограничена 256 символами.
Если же вам нужно передавать какие-либо переменные для перехода от страницы к странице удобней использовать метод get - ведь передачу переменных в нем можно осуществить, просто указав соответствующим образом адрес скрипта (добавив к нему ?([переменная 1]=[значение переменной 1])&([переменная 2]=[значение переменной 2])...&([переменная N]=[значение переменной N]) ).