【问题标题】:Remember fields across pages?还记得跨页面的字段吗?
【发布时间】:2011-04-13 20:54:41
【问题描述】:

我有这个: 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 和 password。

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

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

我知道为什么会这样。

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

课程对我来说太难学了。有没有其他解决办法?

【问题讨论】:

  • 会话并不难。它们比跨页面传递这些字段要容易得多
  • @Teoman Soygul 那么为什么建议它呢!?
  • @ILMV 其实你是对的,我只是在暗示两害相权取其轻。删除评论..

标签: php input field remember-me


【解决方案1】:

太难了?简而言之,在您要使用会话的每个页面的顶部,使用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

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

更多信息:

【讨论】:

  • 天哪,谢谢!我希望我能给你一些观点。 (排名太低:()
  • 没问题。并且你可以给正确的回答者加分;通过接受答案(单击答案旁边的空勾号)和投票答案(需要 15 个代表,并通过单击答案旁边的向上箭头来完成。)查看了您的其他问题,您应该这样做如果您发现任何有用的东西,请回复那里的答案。
  • 另外,正如一般评论:永远不要放弃学习。即使它看起来像有史以来最难的事情,如果它很有趣,它也是值得的。制作一个简单的 html 网页看起来很痛苦,直到您了解它是如何完成的。另外,使用大男孩的玩具会让你看起来很酷。
【解决方案2】:

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

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

...

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

Example PHP authentication classes for you to use

【讨论】:

  • 有没有其他方法可以让它记住跨页面的字段?
  • 最简单的方法是使用会话。如果您不使用它们,那么您必须将参数传递给用户导航到的每个页面(通过另一种形式,或者通过在每个链接上添加信息)。
猜你喜欢
  • 2013-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-29
相关资源
最近更新 更多