Перенос переменных между страницами PHP

StackOverflow https://stackoverflow.com/questions/240470

  •  04-07-2019
  •  | 
  •  

Вопрос

Я хочу получить пользовательский ввод на одной странице, сохранить его в переменной 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'];

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

PHP GET

PHP POST

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top