0

在我的网站上,我有 2 个页面,一个简单的受密码保护的页面login.php,称为主网页index.php

我试图阻止用户直接访问'index.php'

  1. 如果访问者试图index.php直接访问,它将重定向到login.php
  2. 如果访问者输入了正确的密码,它将允许访问该index.php文件。

目前,我陷入了困境。

  1. 当我尝试index.php直接访问时,我被重定向到login.php- 这没关系
  2. 当我输入密码时,点击回车,我被发送到index.php然后循环回到“login.php”页面

请问如何防止这个循环

// index.php
<?php
    if (!isset($include_allowed)){
        die("<meta http-equiv='refresh'content='0;url=\"http://www.myweb.com/login.php'>");
    }
?>

-

// login.php
<?php
    $include_allowed = true;
?>

非常感谢(对不起,如果它令人困惑)

请注意,没有用户名,只有一个基本密码表单,用于在发送到“index.php”页面之前检查密码是否与变量匹配

if ($pass == "mypassword") {
4

1 回答 1

2

网络上有大量关于为您的网站设置身份验证系统的教程。您正在寻找的是使用sessions.

这是一篇很好的文章:http ://www.phpbuilder.com/columns/user-authentication/Jason_Gilmore05172011.php3

基本上,从这里(有登录页面),你想要有类似的东西

if( !isset( $_SESSION[ 'isLogged' ] ) ) {
    header( 'Location: login.php' );
}

在你的index.php

更多链接:

http://www.techrepublic.com/forum/questions/101-274721/good-tutorial-for-authenticated-web-sessions-using-phpmysql

http://www.slideshare.net/chadhutchins/basic-user-authentication-with-php-mysql

http://www.9lessons.info/2009/09/php-login-page-example.html

编辑:

如果您想避免使用会话,您还可以查看:Http Authentication with PHP 。这实际上也可以摆脱你的login.php脚本

于 2013-05-14T20:57:10.977 回答