我想在一个页面中获取用户输入,将其存储在一个 php 变量中并在另一个 php 页面中使用它。我尝试过使用“会话”,但它似乎不起作用。还有其他安全的选择吗?此信息可能是用户名和密码。
chustar
问问题
29849 次
5 回答
15
尝试更改您的会话代码,因为这是最好的方法。
例如:
索引.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');
}
?>
但是,我可能会在会话中存储一些更安全的东西,例如用户 ID,而不是用户的登录凭据。
于 2008-10-27T16:27:20.847 回答
7
我同意卡森,会议应该为此工作。确保在要使用会话变量的任何页面上调用session_start()之前。
另外,我不会直接存储密码信息,而是使用某种身份验证令牌机制。恕我直言,在会话中存储密码数据本质上并不是不安全的,但如果没有必要这样做,您可能应该尽量避免它。
于 2008-10-27T16:24:42.223 回答
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'];
于 2008-10-27T16:29:02.357 回答
0
我也同意,会话是最好的解决方案。有关一些示例,请参阅使用 PHP 和 MySQL 的 Web 数据库应用程序的这一章。
于 2008-10-27T16:29:27.830 回答