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