Хороший способ передать переменную между страницами с помощью метода $ _GET с url:
<a href="input_obj.php?id='$id'&method=plain
и взять его в файл input_obj.php с таким кодом:
$id = $_GET['id']; $method = $_GET['method'];
ИЛИ
используя сеанс – есть кто-то идея, как?
Это зависит от ваших потребностей. Действительно, если вы, например, передаете аргументы поиска между страницами, а переменные должны быть как постоянными, так и доступными для конечного пользователя (например, посредством закладок), а затем передавать их по URL-адресу (но обычно не используют кавычки, например, у вас есть $id
в "input_obj.php?id='$id'&method=plain
)
Если вы действительно передаете внутренние переменные между сценариями, это лучше сделать с помощью переменных $_SESSION
. Помните, что конечные пользователи могут легко изменять переменные, проходящие через URL-адреса. Если они не предназначены для использования конечным пользователем, это может быть реальной проблемой. Используя $_SESSION
, вы изолируете переменные вашего скрипта от подделки конечным пользователем, когда необходимо изолировать их. (если, конечно, переменные не создаются другим пользователем через GET / POST / COOKIE)
//page1.php session_start(); $_SESSION['id'] = $id; //page2.php session_start(); echo $_SESSION['id'];
Переменные GET – намного лучший способ. Когда вы начинаете отбрасывать переменные в сеанс, у него могут быть побочные эффекты, такие как копирование / вставка URL-адреса из браузера в браузер или попытка закладки, может вызвать разные страницы (что, следовательно, является кошмаром для SEO). Кроме того, у вас могут возникнуть сложности, если вы когда-либо начинаете кластеризовать свои серверы b / c, вам нужно будет справиться с переключением сеанса.
IMHO, лучшим решением является использование mod_rewrite для реализации переменных на основе пути … вы получаете довольно URL-адреса со всеми преимуществами GET-варов.
GET
– разумный способ передать переменные на другую страницу.
$_SESSION
и cookies
– это еще один способ, но он не позволит пользователю добавлять закладки на страницу.
POST
– это еще один способ, но для этого требуется представление формы, которое должно было бы потребовать вмешательства пользователя или javascript.
Это зависит от того, для чего предназначены данные, его типа и длины. Как правило, передача переменных в строке запроса прекрасна.
Имейте в виду, что при принятии изменяемых параметров вам нужно убедиться, что они являются тем, что вы ожидаете от них. Например, я мог бы изменить ?id=5
на ?id=hello
и, возможно, разорвать ваше приложение. Чтобы исправить это, мы могли бы присваивать идентификатор целому числу:
$id = isset($_GET['id']) ? (int) $_GET['id'] : 0;
Вы также можете использовать файлы cookie. Они отправляются следующим образом:
setcookie(name, value, expire, path, domain);
вы можете опустить путь и переменные домена. Это должно быть объявлено перед тегом. Имя – это просто имя, с которым вы его получите. Значение – это то, что будет возвращено и истечет – время, в которое истекает срок действия файла cookie (он записывается в виде time() + $timeTillExpire
где timetillexpire – это значение переменной или константы, которое вы задали). Это, конечно, имеет ограничение, если у человека есть файлы cookie, это не сработает.
Вы получаете cookie с:
$_COOKIE["name"];
и возвращает значение
то, как вы это делали, отлично работает.
Если вы просто используете переменные в своем PHP-скрипте, вам не нужно «передавать» их. Вы можете создать переменную глобально и получить доступ к ней с другой страницы.