在PHP页面之间传输变量

chu*_*tar 10 php variables

我想在一个页面中获取用户输入,将其存储在php变量中并在另一个php页面中使用它.我尝试过使用'会话',但它似乎没有用.还有另一种安全的选择吗?此信息可能是用户名和密码.

Ros*_*oss 14

尝试更改会话代码,因为这是执行此操作的最佳方式.

例如:

的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
}
?>
Run Code Online (Sandbox Code Playgroud)

nextpage.php

<?php
session_start();

if (isset($_SESSION['username'])) {
    echo $_SESSION['username'];
} else {
    header('Location: index.php');
}
?>
Run Code Online (Sandbox Code Playgroud)

但是,我可能会在会话中存储比userid更安全的东西,而不是用户的登录凭据.


Zom*_*eep 7

我同意卡森,会议应该为此工作.确保在要使用会话变量的任何页面上的任何其他内容之前调用session_start().

另外,我不会直接存储密码信息,而是使用某种身份验证令牌机制.恕我直言,在会话中存储密码数据本质上不安全,但如果没有必要这样做,你应该尽量避免它.


Ste*_*rig 5

有几种方式:

  • 使用会话(但不要忘记在您将使用会话数据存储($_SESSION)的每个页面上调用session_start( ))
  • 将您的数据附加到“下一个”页面的查询字符串($_GET
  • 将您的数据发布到“下一个”页面($_POST

会话方式是数据不会“离开”服务器的唯一方式,因为它存储在服务器本身上。对于上述所有其他方式,您必须注意清理和验证接收页面上的数据。

最简单的方法是

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

//page2.php
session_start();
echo $_SESSION['user'] . ' ' . $_SESSION['password'];
Run Code Online (Sandbox Code Playgroud)