Я хочу получить пользовательский ввод на одной странице, сохранить его в переменной php и использовать на другой странице php. Я пробовал использовать «сессии», но, похоже, это не работает. Есть ли другая безопасная альтернатива? Эта информация, вероятно, будет именами пользователей и паролями.
Перенос переменных между страницами PHP
Ответы (5)
Попробуйте изменить код сеанса, так как это лучший способ сделать это.
Например:
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
}
?>
следующая страница.php
<?php
session_start();
if (isset($_SESSION['username'])) {
echo $_SESSION['username'];
} else {
header('Location: index.php');
}
?>
Однако я бы, вероятно, сохранил что-то более безопасное, например, идентификатор пользователя в сеансе, а не учетные данные пользователя.
Я согласен с carson, сеансы должны работать для этого. Убедитесь, что вы вызываете session_start() прежде всего на любой странице, на которой вы хотите использовать переменные сеанса.
Кроме того, я бы не стал хранить информацию о пароле напрямую, а использовал бы какой-то механизм токена аутентификации. ИМХО, хранение данных паролей в сеансе внутренне не является небезопасным, но если в этом нет необходимости, вам, вероятно, следует попытаться избежать этого.
Есть несколько способов:
- используйте сеансы (но не забудьте вызвать session_start() на каждой странице вы будете использовать хранилище данных сеанса ($_SESSION))
- добавьте свои данные в строку запроса «следующей» страницы ($_GET< /а>)
- разместить свои данные на «следующей» странице ($_POST)
Сессионный способ — это единственный способ, при котором данные не «покидают» сервер, так как они хранятся на самом сервере. Для всех других способов, упомянутых выше, вы должны позаботиться о очистке и проверке данных на принимающей странице.
Самый простой способ был бы
//page1.php
session_start();
$_SESSION['user']='user';
$_SESSION['password']='password';
//page2.php
session_start();
echo $_SESSION['user'] . ' ' . $_SESSION['password'];
Вы можете попробовать использовать методы POST и GET для передачи пользовательского ввода в сценариях PHP.
Я тоже согласен, сеансы - лучшее решение. См. эту главу из раздела Приложения веб-базы данных с PHP и MySQL, где приведены некоторые примеры.