1

我有这个:main.php:

ID: <input name="id" id="id" type="text" size="20" value="<?php echo $_POST['id']; ?>"><br>
Password: <input name="password" id="password" type="password" value="<?php echo $_POST['password']; ?>" size="20">

文件 main.php 是索引页。

文件 main.php 是一个带有 action="main.php" 的表单

当我从 main.php 转到 console.php 时,我没有得到值 id 和密码。

当我从 main.php 转到 plugins.php 时,我没有得到值 id 和密码。

从 main.php,你可以进入 plugins.php 和 console.php。但是你没有得到这些值。

我知道为什么会这样。

如何解决这个问题?我怎样才能使当我转到console.php 或plugins.php 时,这些字段会被记住?

课程对我来说太难学习了。还有其他解决方案吗?

4

2 回答 2

3

太难?简而言之,在您要使用会话的每个页面的顶部,使用session_start(). 现在,您想将某些内容保存到会话中吗?

#page1
session_start();
$_SESSION['foo'] = 'bar';

#page2
session_start();
echo $_SESSION['foo'] #echoes bar

unset($_SESSION['foo']); #destroy foo
#if you want to discard the entire session, use
session_destroy(); #going down! 

所以,在你的情况下,可能是这样的:

#main.php
session_start();
if (isset($_POST['id'], $_POST['password'])) {
    $_SESSION['id'] = $_POST['id'];
    $_SESSION['password'] = $_POST['password'];
}
#rest of main.php

#console.php and plugins.php
session_start();
if (isset($_SESSION['id'], $_SESSION['password']))
    #do stuff

我觉得用它来喂你很糟糕,但在你描述的情况下,基本的会话功能确实是所需要的,它可能是传递敏感信息的最简单方法,基本上就是会话的目的。

欲了解更多信息:

于 2011-04-13T21:11:49.450 回答
1

1) 学习课程。并且永远不要传递某人的密码。您应该对密码进行哈希处理,并根据数据库中的哈希值对其进行检查。检查匹配后,您可以在会话变量中存储用户已通过身份验证 - 您不再需要知道他们提交了哪个密码。

2) 理解当你提交一个 html 表单时,action表单的 是唯一可以直接使用发布的表单参数做任何事情的页面。

...

尽量不要放弃学习这些东西——它们的创建是为了让你的生活更轻松,而不是更具挑战性。

供您使用的示例 PHP 身份验证类

于 2011-04-13T20:57:12.277 回答