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

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

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

Я согласен с Карсоном, сессии должны работать на это. Убедитесь, что вы вызываете 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 GET

PHP POST

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