PHP Передать переменную на следующую страницу

Это кажется довольно простым, но я не могу найти хороший способ сделать это.

Скажем, на первой странице я создаю переменную

$myVariable = "Some text"; 

И действие формы для этой страницы – «Page2.php». Итак, в файле Page2.php, как я могу получить доступ к этой переменной? Я знаю, что могу делать это с сессиями, но я думаю, что это слишком много для простой строки, и мне нужно просто передать простую строку (имя файла).

Как я могу это достичь?

Благодаря!

HTML / HTTP является безстоящим, другими словами, то, что вы делали / видели на предыдущей странице, полностью отключено от текущей страницы. За исключением случаев, когда вы используете что-то вроде сеансов, файлов cookie или GET / POST. Сессии и файлы cookie довольно просты в использовании, причем сеанс гораздо безопаснее, чем файлы cookie. Более безопасный, но не полностью безопасный.

сессия:

 //On page 1 $_SESSION['varname'] = $var_value; //On page 2 $var_value = $_SESSION['varname']; 

Не забудьте запустить инструкцию session_start() на обеих этих страницах, прежде чем пытаться получить доступ к массиву $_SESSION , а также перед тем, как любой вывод будет отправлен в браузер.

Cookie:

 //One page 1 $_COOKIE['varname'] = $var_value; //On page 2 $var_value = $_COOKIE['varname']; 

Большая разница между сеансами и куки-файлами заключается в том, что значение переменной будет храниться на сервере, если вы используете сеансы и на клиенте, если вы используете файлы cookie. Я не могу придумать какой-либо веской причины использовать файлы cookie вместо сеансов, за исключением случаев, когда вы хотите, чтобы данные сохранялись между сеансами, но даже тогда, возможно, лучше сохранить их в БД и получить их на основе имени пользователя или идентификатора.

GET и POST

Вы можете добавить переменную в ссылку на следующую страницу:

 <a href="page2.php?varname=<?php echo $var_value ?>">Page2</a> 

Это создаст переменную GET.

Другой способ заключается в том, чтобы включить скрытое поле в форму, представленную на второй странице:

 <form method="get" action="page2.php"> <input type="hidden" name="varname" value="var_value"> <input type="submit"> </form> 

И затем на второй странице:

 //Using GET $var_value = $_GET['varname']; //Using POST $var_value = $_POST['varname']; //Using GET, POST or COOKIE. $var_value = $_REQUEST['varname']; 

Просто измените метод post формы, если вы хотите сделать это через сообщение. Оба одинаково небезопасны, хотя GET легче взломать.

Тот факт, что каждый новый запрос, за исключением данных сеанса, совершенно новый экземпляр скрипта поймал меня, когда я впервые начал кодирование в PHP. Как только вы привыкнете к этому, это довольно просто.

Спасибо за ответы выше. Вот как я это сделал, надеюсь, это поможет тем, кто следует. Я хочу передать регистрационный номер с одной страницы на другую, поэтому regName и regValue :

Создайте свою первую страницу, назовите ее set_reg.php :

 <?php session_start(); $_SESSION['regName'] = $regValue; ?> <form method="get" action="get_reg.php"> <input type="text" name="regName" value=""> <input type="submit"> </form> 

Создайте свою вторую страницу, назовите ее get_reg.php :

 <?php session_start(); $regValue = $_GET['regName']; echo "Your registration is: ".$regValue."."; ?> <p><a href="set_reg.php">Back to set_reg.php</a> 

Хотя это не так полно, как ответ выше, для моих целей это просто иллюстрирует связь между различными элементами.

Передача данных в запросе

Вы можете вставлять его как скрытое поле в свою форму или добавлять его URL-адрес формы

  echo '<input type="hidden" name="myVariable" value="'. htmlentities($myVariable).'">'; 

или

 echo '<form method="POST" action="Page2.php?myVariable='. urlencode($myVariable).'">"; 

Обратите внимание, что это также иллюстрирует использование htmlentities и urlencode при передаче данных.

Передача данных в сеансе

Если данные не нужно передавать на клиентскую сторону, тогда сеансы могут быть более уместными. Просто вызовите session_start () в начале каждой страницы, и вы можете получить и установить данные в массив $ _SESSION.

Безопасность

Поскольку вы заявляете, что ваше значение на самом деле является именем файла, вам необходимо знать о последствиях безопасности. Если имя файла поступило с клиентской стороны, предположите, что пользователь вмешался в это значение. Проверьте его на достоверность! Что происходит, когда пользователь передает путь к важному системному файлу или файл под их контролем? Может ли ваш сценарий использоваться для «зондирования» сервера для файлов, которые существуют или не существуют?

Поскольку вы явно начинаете здесь, стоит упомянуть, что это касается любых данных, поступающих в $ _GET, $ _POST или $ _COOKIE. Предположим, ваш худший враг создал содержимое этих массивов и код соответственно!

Существует три метода передачи значения в php.

  • По почте
  • Получив
  • С помощью переменной сеанса

Эти три метода используются для разных целей. Например, если мы хотим получить наше значение на следующей странице, мы можем использовать метод post ($ _POST) как: –

 $a=$_POST['field-name']; 

Если нам требуется значение переменной на более чем одной странице, мы можем использовать переменную сеанса как: –

 $a=$_SESSION['field-name]; 

Перед использованием этого синтаксиса для создания переменной SESSION сначала нужно добавить этот тег в самом начале нашей php-страницы

 session_start(); 

Метод GET обычно используется для печати данных на той же странице, которая использовалась для ввода данных от пользователя. Его синтаксис выглядит так:

 $a=$_GET['field-name']; 

Метод POST, как правило, более безопасен, чем GET, потому что когда мы используем метод Get, чем он может отображать данные в строке URL. Если данные более чувствительные данные, такие как пароль, то это может быть inggeris.

Сессии были бы единственным хорошим способом, вы также могли бы использовать GET / POST, но это было бы потенциально неуверенно.

Лучше всего и проще всего передавать переменные, как я объяснил это здесь: Сохранение всех данных POST на СЕССИИ

попробуйте этот код

используя скрытое поле, мы можем передать php varibale на другую страницу

page1.php

 <?php $myVariable = "Some text";?> <form method="post" action="page2.php"> <input type="hidden" name="text" value="<?php echo $myVariable; ?>"> <button type="submit">Submit</button> </form> 

передать переменную php в значение скрытого поля, чтобы вы могли получить доступ к этой переменной на другую страницу

page2.php

 <?php $text=$_POST['text']; echo $text; ?> 
 **page 1** <form action="exapmple.php?variable_name=$value" method="POST"> <button> <input type="hidden" name="x"> </button> </form>` 

страница 2

 if(isset($_POST['x'])) { $new_value=$_GET['variable_name']; }