简单 PHP/MySQL 仅刷新表单

Simple PHP/MySQL Form Only Refreshes

我只是按照指南使用 PHP 和 MySQL 设置了一个非常简单的登录系统,我的代码完全是视频的克隆,但是当我点击提交按钮时它只是刷新我的页面,无论 username/password 框中的值是什么。该指南来自 2010 年,但我认为它会起作用,因为系统非常简单。

XAMPP 信息:

table 名字是 'users'
数据库名称是 'fast'

<?php

$host = "localhost";
$user = "root";
$pass = "";
$db = "fast";

mysql_connect($host, $user, $pass);
mysql_select_db($db);

    if (isset ($_POST['username'])) {
        $username = $_POST['username'];
        $password = $_POST['password'];
    $sql = "SELECT * FROM users WHERE username='".$username."' AND     password='".$password."' LIMIT 1";
    $res = mysql_query($sql);
    if (mysqli_num_rows($res) == 1) {
        echo "You have succesfully logged in.";
        exit();
    } else {
        echo "Invalid login information. Please return the previous page";
        exit();
    }
}

?>



<!DOCTYPE html>
<html>
<head>
    <title>Login</title>
</head>

<body>
    <form method="POST" action="login.php">
        Username: <input type="text" name="username"></input>
        Password: <input type="password" name="password"></input>
        <input type="submit" name="submit" value="Log In"></input>
    </form>
</body>
</html>

使用 mysqli 而不是 mysql,因为 mysql 在 php 5.5 版本之后被弃用,并且您的代码在 if 条件下也有错误

$host = "localhost";
$user = "root";
$pass = "";
$db = "fast";
$con = mysqli_connect($host, $user, $pass, $db);

// Check connection

if (mysqli_connect_errno()) {
    die("Failed to connect to MySQL: " . mysqli_connect_error());
}

if (isset($_POST['username'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];
    $sql = "SELECT * FROM users WHERE username='" . $username . "' AND     password='" . $password . "' LIMIT 1";
    $res = mysqli_query($con, $sql);
    if (mysqli_num_rows($res) > 0) {
        echo "You have succesfully logged in.";
        exit();
    }
    else {
        echo "Invalid login information. Please return the previous page";
        exit();
    }

    mysqli_close($con);
}

编辑版本

制作一个单独的 connect.php 文件并将其包含在您的 login.php 文件中,我还更新了您 login.php file.If 提交按钮中的 isset 条件,然后单击验证条件有效

(mysql 在 PHP 5.5 版后被弃用,使用 pdo 或 mysqli)

connect.php

<?php

$host = "localhost";
$user = "root";
$pass = "";
$db = "fast";

mysql_connect($host, $user, $pass);
mysql_select_db($db);
?>

login.php

 <?php
        require('connect.php');
        if (isset ($_POST['submit'])) {
            $username = $_POST['username'];
            $password = $_POST['password'];
        $sql = "SELECT * FROM users WHERE username='".$username."' AND     password='".$password."' LIMIT 1";
        $res = mysql_query($sql);
        if ($res) {
            echo "You have succesfully logged in.";
            exit();
        } else {
            echo "Invalid login information. Please return the previous page";
            exit();
        }
    }

    ?>
<!DOCTYPE html>
<html>
<head>
    <title>Login</title>
</head>

<body>
    <form method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
        Username: <input type="text" name="username"></input>
        Password: <input type="password" name="password"></input>
        <input type="submit" name="submit" value="Log In"></input>
    </form>
</body>
</html>