Я просто следовал руководству по настройке очень простой системы входа в систему с PHP и MySQL, и мой код является точным клоном из видео, но когда я нажимаю кнопку отправки, он просто обновляет мою страницу, независимо от того, какие значения находятся в полях имени пользователя / пароля , Руководство было с 2010 года, но я предполагал, что оно будет работать, потому что система очень проста.
ИНФОРМАЦИЯ О XAMPP:
имя таблицы «пользователи»
имя базы данных «быстро»
<?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>
РЕДАКЦИОННАЯ ВЕРСИЯ
Сделать отдельный connect.php
файл и включите его в ваш файл login.php. Также я обновил isset условие в вашем файле login.php. Если нажать кнопку «Отправить», то условия проверки работают
(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>
Используйте 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);
}