简单 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>
我只是按照指南使用 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>