-1

我正在一点一点地创建一个网页,测试部分网页创意。我想学习如何会话保护页面。我已经对页面进行了密码保护,但是任何人都可以通过输入 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

3 回答 3

0
$_SESSION['connect']=0;

将会话中的连接值设置为 0。

目前这个检查:

  if((!$_SESSION['connect']))

将始终返回 true,因为如果$_SESSION['connect']未设置,则为!$_SESSION['connect']true。同样if(!0)是真实的。

尝试设置$_SESSION['connect']为 true 或 1 等,或者,将检查更改为:

if(!array_key_exists('connect',$_SESSION))
于 2013-03-28T02:46:11.753 回答
0

( ! $_SESSION['connect'] )will 在 session 变量未设置但设置为 0 时为 true。因此,如果要保护 youhere.php,则需要分配另一个值并检查它。

session_destroy()将删除所有会话变量,所以你登录,你去 youhere.php 但如果你刷新站点,你将立即被注销

于 2013-03-28T02:47:06.930 回答
0

PHP 网站上有大量关于 Sessions 的信息。 http://www.php.net/manual/en/intro.session.php

这是一个存储和终止会话变量的示例。 http://www.php.net/manual/en/session.examples.basic.php

设置会话变量:

<?php
session_start();
if (!isset($_SESSION['count'])) {
  $_SESSION['count'] = 0;
} else {
  $_SESSION['count']++;
}
?>

要杀死会话变量:

<?php
  session_start();
  unset($_SESSION['count']);
?>
于 2013-03-28T02:51:30.263 回答