这里有几个问题:我的最终目标是密码保护文件logged_in.php .
注意:我只是初学者/中级程序员,所以我想要清楚的解释 .
首先,我在数据库表中设置了用户名和密码 .
-
我有两个页面:login.php和logged_in.php(名称仅用于示例目的) . 我如何“要求”用户首先通过login.php(登录过程)以获取对logged_in.php的访问权限(如果输入的用户名/密码正确)?
-
这是密码保护页面的最佳方法吗?
我尝试过的:
login.php中:
<?php
$db_host="host";
$db_user="user";
$db_pass="pass";
$db_name="name";
$db_table="table";
$user = mysql_real_escape_string(strip_tags($_POST['user']));
$pass = mysql_real_escape_string(strip_tags($_POST['pass']));
mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error());
mysql_select_db($db_name) or die(mysql_error());
if(isset($user) && isset($pass))
{
$sql = "SELECT * FROM $db_table WHERE username='$user' AND password='$pass'";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
if($count == 1)
{
header("location:logged_in.php");
}
else
header("location:bad_login.html");
}
?>
-
目前我的代码存在的问题是,有人可以直接输入logged_in.php的URL并访问该页面而不是“必须”首先通过login.php(我确信这对每个人都很明显 . ) .
-
我把
require(login.php);
放在了logged_in.php的顶部;然而,这没有成功 . -
我已经检查了谷歌关于这个主题的一些很好的教程,不幸的是我找不到任何有明确解释的 .
-
我还在stackoverflow上看到了关于这个主题的一些其他问题,但它们并没有真正帮助我 .
我也有兴趣能够使用phpMyAdmin使用的方法传递保护我的页面(当你输入URL并按下输入时,它会从浏览器顶部下拉菜单,询问用户名/密码) . 我不知道那是怎么回事 . 如果有人可以告诉我它是如何工作的,我愿意完全忽略我现在尝试使用的方法(如果phpMyAdmin方法足够安全并且相当容易实现) .
提前致谢!
1 回答
使用$ _SESSION变量:
logged_in.php:
phpMyAdmin登录是不同的,因为使用MySQL用户名和密码登录,所以phpMyAdmin不需要像你的代码那样创建一个数据库和表来登录
您还需要注销:
logout.php