PHP会话变量和GET请求

时间:2012-06-27 15:34:22

标签: php html session post get

美好的一天,

我正在创建一个用户登录名为“index.html”的网页,当用户从“index.html”提交表单时,该网页会将数据发布到“home.php”网站。现在我在“home.php”中,我可以检索已发布的变量,检查数据库并验证用户身份。一旦我进入“home.php”文件,我希望用户向“home.php”站点发出GET请求以显示不同的数据。有没有办法做到这一点并保持身份验证?

现在我收到通知说POST变量未定义。 (显然,因为我没有发布任何内容)

Notice: Undefined index: pass in C:\xampp\htdocs\home.php on line 7

谢谢, 马特

4 个答案:

答案 0 :(得分:2)

听起来你想要使用会话。


请参阅:http://www.w3schools.com/php/php_sessions.asp

请参阅:http://www.tizag.com/phpT/phpsessions.php

答案 1 :(得分:2)

执行初始身份验证检查(表单提交和帐户验证)后,您应该为用户分配某种形式的会话令牌。这是您可以验证的令牌,您可以使用该令牌进行后续请求的简写验证。您可以通过以下几种方式创建此令牌:

  1. 创建一个简单的表来跟踪授权的会话令牌及其到期日期。这样可以确保只允许您创建的会话,绑定到单个帐户,并且具有保证的到期日期。
  2. 创建加密的令牌格式,以便会话令牌实际上是一个加密的数据容器,您只能在服务器端使用私有的旋转键进行读取。令牌将包含有关用户和过期的信息,并且无需服务器端表。
  3. 除了每个令牌的基本信息之外,最好还包括对初始身份验证请求的UserAgent和IPAddress的引用,以便确保不会发生会话劫持。

    创建令牌后,您需要将其存储在交叉请求位置;可以是会话或cookie变量。这主要是一种偏好,但无论哪种方式,您都应确保只能从HTTP请求访问它,而不能通过JS请求来阻止XSS(跨站点脚本)。在会话和cookie上查看这些artickes:

    现在您有了一个可以在站点中的任何位置使用的令牌,您将需要为每个页面创建一个身份验证处理程序来检查此令牌并验证它是否有效。一旦您确认它是真实的,您就可以使用它来确定哪个用户正在查看该页面以及他们应该拥有哪些权限。

答案 2 :(得分:1)

这样做

$pass = isset($_POST['pass']) ? $_POST['pass'] : null;

答案 3 :(得分:1)

您可以这样做:

echo "<form method='post' action='home.php?parameter1=".$variable1."'>";

然后你有POST和GET变量。

编辑:但我认为我误解了你,使用SESSION变量来通过页面保持身份验证。