Перенос переменных между страницами PHP
Вопрос
Я хочу получить пользовательский ввод на одной странице, сохранить его в переменной php и использовать на другой странице php.Я пробовал использовать «сессии», но, похоже, это не работает.Есть ли другая безопасная альтернатива?Эта информация, скорее всего, будет именами пользователей и паролями.
Решение
Попробуйте изменить код сеанса, так как это лучший способ сделать это.
Например:
index.php
<?php
session_start();
if (isset($_POST['username'], $_POST['password']) {
$_SESSION['username'] = $_POST['username'];
$_SESSION['password'] = $_POST['password'];
echo '<a href="nextpage.php">Click to continue.</a>';
} else {
// form
}
?>
nextpage.php
<?php
session_start();
if (isset($_SESSION['username'])) {
echo $_SESSION['username'];
} else {
header('Location: index.php');
}
?>
Однако я бы, вероятно, сохранил что-то более безопасное, например, идентификатор пользователя в сеансе, а не учетные данные пользователя.
Другие советы
Согласен с Carson, сессии должны работать на это. Убедитесь, что вы вызываете session_start () , прежде чем что-либо еще на любой странице, для которой вы хотите использовать переменные сеанса. р>
Кроме того, я бы не стал хранить информацию о паролях напрямую, а использовал бы какой-нибудь механизм аутентификации. ИМХО, внутренне небезопасно хранить данные паролей в сеансе, но если в этом нет необходимости, вам, вероятно, следует избегать этого.
Есть несколько способов:
- использовать сессии (но не забудьте позвонить сеанс_start() на каждой странице вы будете использовать хранилище данных сеанса ($_SESSION))
- добавьте свои данные в строку запроса «следующей» страницы ($_GET)
- разместите свои данные на «следующей» странице ($_POST)
Сеансовый путь — единственный способ, при котором данные не «покидают» сервер, поскольку они хранятся на самом сервере.Для всех остальных способов, упомянутых выше, вам необходимо позаботиться об очистке и проверке данных на принимающей странице.
Самый простой способ будет
//page1.php
session_start();
$_SESSION['user']='user';
$_SESSION['password']='password';
//page2.php
session_start();
echo $_SESSION['user'] . ' ' . $_SESSION['password'];
Я тоже согласен, сессии являются лучшим решением. См. Эту главу в приложениях веб-баз данных с PHP & Amp; MySQL для некоторых примеров.