Передача переменных в 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 форма

Раз вас заинтересовал вопрос передачи переменных на 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]) ).