Перенос переменных между страницами PHP - PullRequest
9 голосов
/ 27 октября 2008

Я хочу получить пользовательский ввод на одной странице, сохранить его в переменной php и использовать его на другой странице php. Я пытался использовать «сессии», но это не похоже на работу. Есть ли другая безопасная альтернатива? Эта информация может быть именами пользователей и паролями.

Ответы [ 5 ]

13 голосов
/ 27 октября 2008

Попробуйте изменить код сеанса, так как это лучший способ сделать это.

Например:

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');
}
?>

Однако я бы, вероятно, сохранил в сеансе что-то более безопасное, например идентификатор пользователя, а не учетные данные пользователя.

7 голосов
/ 27 октября 2008

Согласен с Carson, сессии должны работать для этого. Убедитесь, что вы вызываете session_start () , прежде чем что-либо еще на любой странице вы хотите использовать переменные сеанса.

Кроме того, я бы не стал хранить информацию о паролях напрямую, а использовал бы какой-нибудь механизм токена аутентификации. ИМХО, по сути не является небезопасным для хранения данных паролей в сеансе, но если в этом нет необходимости, вам, вероятно, следует избегать этого.

4 голосов
/ 27 октября 2008

Есть несколько способов:

  • использовать сеансов (но не забывайте вызывать session_start () на каждой странице, где вы будете использовать хранилище данных сеансов ( $ _ SESSION ))
  • добавить ваши данные в строку запроса «следующей» страницы ( $ _ GET )
  • опубликовать ваши данные на "следующей" странице ( $ _ POST )

Сеансовый путь - это единственный способ, при котором данные не "покидают" сервер, поскольку они хранятся на самом сервере. Для всех других упомянутых выше способов вы должны позаботиться о санации и проверке данных на странице получения.

Самый простой способ будет

//page1.php
session_start();
$_SESSION['user']='user';
$_SESSION['password']='password';

//page2.php
session_start();
echo $_SESSION['user'] . ' ' . $_SESSION['password'];
0 голосов
/ 27 октября 2008

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

0 голосов
/ 27 октября 2008

Вы можете попробовать использовать методы POST и GET для передачи пользовательских вводов в скриптах PHP.

PHP GET

PHP POST

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...