记住页面中的字段?

时间:2011-04-13 20:54:41

标签: php input field remember-me

我有这个: 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时,字段会被记住?

会议对我来说太难学了。还有其他解决方案吗?

2 个答案:

答案 0 :(得分: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

我觉得用勺子喂你是不好的,但基本的会话功能实际上就是你所描述的情况所需要的,而且它可能是传递敏感信息的最简单方法,基本上是会话的内容对

欲了解更多信息:

答案 1 :(得分:1)

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

2)了解当您提交html表单时,表单的action是唯一可以直接使用已发布的表单参数执行任何操作的页面。

...

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

Example PHP authentication classes for you to use