0

我正在一点一点地创建一个网页,测试部分网页创意。我想学习如何会话保护页面。我已经对页面进行了密码保护,但是任何人都可以通过输入 url 来访问该页面。我想会话保护我的页面,所以没有人可以做到这一点。我有三个页面:index.html,它具有发送password.php的表单,password.php,它使用“if statments”确保密码和用户名是正确的(这里是“if statment”)

    if ($username == 'mgmb99'){
    if ($password == 'mgmb91mas'){
    header('Location: youhere.php');
    } else {
    echo 'your username or password is wrong.<a href="http://www.passwordtest.comze.com"> go back to login page </a>';
    }} else {
    echo 'your username or password is wrong.<a href="http://www.passwordtest.comze.com"> go back to login page </a>';
    };

,以及登录后的页面 youhere.php。

4

2 回答 2

1

网上有很多很好的例子。但是会话限制(和数据库)最好使用盐键或哈希。

所以基本上你拿一个 id/username 和一段随机文本,并(例如)用 sha1 对其进行哈希处理。

sha1($[your username].'completely random piece of text')

这将为您提供一个 40 个字符的字符串,如果您有用户名和随机文本,您可以复制该字符串。所以:

if($SESSION['id'] == sha1($[your username].'completely random piece of text')) { // 现在你知道用户名是正确的 }

基本上就是这样。它确实有一些更多的技巧。但永远不要在会话中放入任何对任何人都有意义的东西。因此,只需在会话中使用公共 ID(不是用户 ID)以及散列数据。

一个简单会话的例子在这里(没有检查它,但它很好开始):http ://www.webdesign.org/web-programming/php/password-protect.11092.html

祝你好运!

于 2013-03-31T17:12:18.203 回答
0
do like this
<?php
session_start();
if ($username == `enter code here`)
{
    if ($password == `mgmb91mas`)
    {
      $_SESSION[`id`]='Secret code';
      header(`Location:page.php`);
    }
?>
and check that id in the next page at start like below
<?php
session_start();
if($_SESSION['id']!='Secret code')
{
header('Location:inde.php');
}
?>
于 2013-03-31T17:19:56.843 回答