我正在迈出第一步php
,我遇到了这个对我来说无法解决的问题。我正在尝试创建一个网站,该网站使用简单的MySQL
数据库来识别访问者提供的一些凭据。请注意,此时我对网站的整体安全性并不真正感兴趣。现在解决问题:
假设我有 3 个文件。在文件main_login.php
中存储了用户进入网站必须使用的表单,即调用checklogin.php
:
<form name="form1" method="post" action="checklogin.php">
在checklogin.php
我正在检查用户提供的输入(名称和密码)是否包含在数据库中,如果正确,我将他重定向到index.php
:
// More unrelated php here....
$sql="SELECT * FROM $tbl_name WHERE username='$username' and password='$password'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $username and $password, table row must be 1 row
if($count==1)
{
// Register $username, $password and redirect to file "index.php"
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
header("location:index.php");
}
else
{
echo "Wrong username or password";
}
最后,index.php
我正在检查是否定义了“$_SESSION[username]”,否则我将用户重定向到 main_login.php。
<?php
session_start();
if (!isset($_SESSION['username']))
{
header("location: main_login.php");
}
?>
// HTML code here...
现在的问题:也许我在这方面投入了太多时间,我无法清楚地思考,但每当我输入正确的密码和用户名时,我总是被重定向到 main_login.php,这与我输入错误凭据时不同。有人可能解决这个问题吗?