Php登录页面到索引页面

Php登录页面到索引页面,php,mysql,Php,Mysql,我的第一个PHP网站 登录页面 输入用户名: 输入密码: 这是我的代码,它应该检查登录并引导您进入index.php页面,但它没有做任何事情。我的所有用户名和密码都存储在我的数据库中 最后一段代码是用来创建登录页面的,我不确定是什么阻止了登录?所有用户都正确地存储在数据库中,但当我与他们一起登录时,页面只会快速刷新,不做任何事情来扩展我关于使用打印语句以确保代码正在执行且无需检查用户密码两次的评论,请参阅以下更改: <head> <title>My fir


我的第一个PHP网站
登录页面


输入用户名:
输入密码:

这是我的代码,它应该检查登录并引导您进入index.php页面,但它没有做任何事情。我的所有用户名和密码都存储在我的数据库中
最后一段代码是用来创建登录页面的,我不确定是什么阻止了登录?所有用户都正确地存储在数据库中,但当我与他们一起登录时,页面只会快速刷新,不做任何事情来扩展我关于使用
打印
语句以确保代码正在执行且无需检查用户密码两次的评论,请参阅以下更改:

<head>

    <title>My first PHP website</title>

</head>

<body>

    <h2>Login Page</h2>

    <a href="index.php">Click here to go back</a><br/><br/>

    <form action="checklogin.php" method="post">

        Enter Username: <input type="text" name="username" required="required"/> <br/>

        Enter Password: <input type="password" name="password" required="required" /> <br/>

        <input type="submit" value="Login"/>

    </form>

</body>
由于如果通过SQL查询未找到用户名匹配,并且如果存在匹配,则该行将永远不会执行,因此无论如何,将在下一个if语句中比较密码

我已将
Print
语句添加到
if($password==$table\u password)//检查密码匹配
code块,以便您可以查看这段代码是否正在实际执行。如果是,则
标题()
没有重定向,如果不是,则问题出在其他地方


最后,如注释中所述,这是一些易受SQL注入攻击的不安全代码。您应该考虑使用PDQO或准备好的语句和MySQL。你目前的解决方案对大学来说已经足够了,但在现实世界中,这是另一个弱点。注意,同时披露用户名或密码是否不正确也是一种安全风险,您只需选择“无效登录”即可:)

您无需检查
$password==$table\u password
两次:)在
if($password==$table\u password)中添加
打印
语句
block只是为了确保它被执行。就个人而言,我认为你在浪费时间,因为这是一段不安全的代码。如果这是出于教育目的,那么你的工作就是找出为什么它不起作用。有一些方法可以用来检查代码是否失败。我正在尝试创建一个网站,链接到大学的一个项目的股票数据库。永远不要存储纯文本密码!请使用PHP来处理密码安全性。如果您使用的PHP版本低于5.5,则可以使用
密码\u hash()
。在散列之前,请确保对它们进行了清理或使用了任何其他清理机制。这样做会更改密码并导致不必要的额外编码。请。已在PHP7中删除。了解使用PDO的语句,并考虑使用PDO,谢谢您的建议。由于某些原因,当我单击“登录”时,它仍然不起任何作用,因此我不确定问题出在哪里。@JamesMorris您是否尝试过上面的代码?我刚刚编辑了它,因为我忘记删除
else
子句,请重试。你有什么收获吗?表单是否发送到正确的页面?我怀疑,如果您在我编辑代码之前尝试了该代码,但没有输出,那么您的php.ini配置文件中已禁用错误报告。如果无法直接编辑php.ini文件,则应添加
error\u reporting(E\u ALL)到脚本顶部以输出任何错误;这将使调试成为可能。我让它工作了,它确实将它发送到了正确的页面。我明白我错在哪里,所以谢谢你的帮助!
<head>

    <title>My first PHP website</title>

</head>

<body>

    <h2>Login Page</h2>

    <a href="index.php">Click here to go back</a><br/><br/>

    <form action="checklogin.php" method="post">

        Enter Username: <input type="text" name="username" required="required"/> <br/>

        Enter Password: <input type="password" name="password" required="required" /> <br/>

        <input type="submit" value="Login"/>

    </form>

</body>
<?php
    session_start();
    $username = mysql_real_escape_string($_POST['username']);
    $password = mysql_real_escape_string($_POST['password']);
    $bool = true;

    mysql_connect("localhost", "root", "") or die (mysql_error()); //Connect to server
    mysql_select_db("first_db") or die ("Cannot connect to database"); //Connect to database
    $query = mysql_query("Select * from users WHERE username='$username'"); // Query the users table
    $exists = mysql_num_rows($query); //Checks if username exists
    $table_users = "":
    $table_password = "";

    if($exists > 0) //IF there are no returning rows or no existing username
    {
        while($row = mysql_fetch_assoc($query)) // display all rows from query
        {
            $table_users = $row['username']; // the first username row is passed on to $table_users, and so on until the query is finished
            $table_password = $row['password']; // the first password row is passed on to $table_password, and so on until the query is finished
        }

        if($password == $table_password) //check password match
        {
            Print 'password matched';
            $_SESSION['user'] = $username; //set the username in a session. This serves as a global variable
            header("location: home.php"); // redirects the user to the authenticated home page
        }
        else
        {
            Print '<script>alert("Incorrect Password!");</script>'; // Prompts the user
            Print '<script>window.location.assign("login.php");</script>'; // redirects to login.php
        }
    }
    else //user doesnt exist and/or no rows returned
    {
        Print '<script>alert("Incorrect username!");</script>'; // Prompts the user
        Print '<script>window.location.assign("login.php");</script>'; // redirects to login.php
    }
?>
if(($username == $table_users) && ($password == $table_password))