Переменная Передачи PHP к следующей странице

TypeScript поддерживает ключевое слово infer, которое позволит вам сохранить типы аргументов и / или типы возвращаемых функций.

Для условных типов это выглядело бы так:

type ReturnType = T extends (...args: any[]) => infer R ? R : any;

. Здесь есть некоторая информация об умении: https://www.typescriptlang.org/docs/handbook/ release-notes / typescript-2-8.html

Обновление:

Вы можете сделать это, просто воспользовавшись универсальной функцией:

[111 ]

188
задан Carlo 18 July 2017 в 09:15
поделиться

3 ответа

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. Я не могу придумать какой-либо веской причины для использования файлов 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'];

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

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

425
ответ дан 23 November 2019 в 05:42
поделиться

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

7
ответ дан 23 November 2019 в 05:42
поделиться

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

Вы можете либо встроить его как скрытое поле в форму, либо добавить 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 - предположим, что ваш злейший враг создал содержимое этих массивов, и запрограммируйте соответственно!

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

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

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

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

или файл под их контролем? Можно ли использовать ваш сценарий для "проверки" на сервере файлов, которые существуют или не существуют?

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

или файл под их контролем? Можно ли использовать ваш сценарий для "проверки" на сервере файлов, которые существуют или не существуют?

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

16
ответ дан 23 November 2019 в 05:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: