Передача переменных между страницами 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 GET

PHP POST


Я тоже согласен, сеансы-лучшее решение. См. эту главу из веб-приложения баз данных с PHP & MySQL для некоторые примеры.