Передача переменных в php
Очень часто возникает
потребность передачи переменных скрипту на php. Самый просто пример
- заполнение какой-либо формы, например формы с логином и
паролем.
В данной статье мы рассмотрим самые распространенные
и доступные методы решения данной задачи.
Итак, прежде всего,
давайте определимся с формой. Например, ее html код может выглядеть
следующий образом:
<form method="post" action="login.php">
Логин:<br><input type="edit" 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]) ).
Автор: Владислав Путяк
Источник: www.ru-coding.com
|