Это код, который у меня есть на странице входа в систему:
<!DOCTYPE html>
<!-- saved from url=(0051)https://getbootstrap.com/docs/4.1/examples/sign-in/ -->
<html lang="en" class="gr__getbootstrap_com"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="https://getbootstrap.com/favicon.ico">
<title>Log in - neilslist</title>
<!-- Bootstrap core CSS -->
<link href="./logins_files/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="./logins_files/signin.css" rel="stylesheet">
<link media="screen" type="text/css" rel="stylesheet" href="blob:https://getbootstrap.com/f85c0379-33a3-4de4-9a60-26a6e35982ef"><link media="screen" type="text/css" rel="stylesheet" href="blob:https://getbootstrap.com/e8647a56-67e2-452a-81c9-0cb2a26aa086"><link media="screen" type="text/css" rel="stylesheet" href="blob:https://getbootstrap.com/ce35ac4e-5242-41b6-acf8-0e3167d80b62"></head>
<body class="text-center" data-gr-c-s-loaded="true">
<?php
include 'database.php';
$pdo = Database::connect();
$sql = "SELECT * FROM accounts WHERE username = '$username' AND password = '$password'";
foreach ($pdo->query($sql) as $row) {
$username = $row['username'];
$password = $row['password'];
}
Database::disconnect();
?>
<div id="22fdb251-ebe6-4f61-a4a9-ceb55e94a02b" data-gg-chat-anchor="true" style="z-index: 2147483647; position: relative; display: block; height: 0px; min-height: 0px; width: 0px; min-width: 0px; margin: 0px; padding: 0px; border: 0px;"><div data-reactroot=""></div></div>
<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="form1" method="post" action="checklogin.php">
<td><img class="mb-4" src="assets/actuallogo.png" alt="" width="327" height="93">
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong>Member Login</strong></td>
</tr>
<tr>
<td width="78">Username</td>
<td width="6">:</td>
<td width="294"><input name="username" type="text" id="username"></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input name="password" type="password" id="password"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="Submit" value="Login"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
<br>
<br>
<br>
<br>
<br>
<div id="signup">
<center> <p> Dont have an account? <br> Sign Up <a href="createAccount.php">Here</a> </p></center>
</div>
</body></html>
Что я хочу сделать, так это когда пользователь вводит имя пользователя и пароль в поля формы, информация отправляется в базу данных для проверки правильности имени пользователя и пароля, не переходя на страницу обработчика. После завершения проверки, если имя пользователя и пароль верны, пользователь автоматически перенаправляется на страницу своего профиля, но если он неверен, пользователь просто получит сообщение об ошибке на той же странице, что имя пользователя или пароль неверны.
У меня уже есть страница обработчика, настроенная для того, чтобы сообщить пользователю, что введенная информация верна или неверна, и называется checklogin.php
:
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Untitled Document</title>
<?php
ob_start();
$host="host"; // Host name
$username="username"; // Mysql username
$password="password"; // Mysql password
$db_name="dbname"; // Database name
$tbl_name="tblname"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password") or die(mysql_error());
mysql_select_db("$db_name") or die(mysql_error());
// Define $username and $password
$username=$_POST['username'];
$password=$_POST['password'];
// To protect MySQL injection (more detail about MySQL injection)
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$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) {
echo "Correct Username or Password!";
} else {
echo "Incorrect Username or Password!";
}
ob_end_flush();
?>
</head>
<body>
</body>
</html>
Я хотел бы объединить эти две страницы в одну, чтобы пользователь получил весь опыт на одной странице, аналогично тому, как работают другие веб-сайты, которые аутентифицируют пользователя, а также изменить то, что делает форма, как я упоминал выше. Я не понимаю, как использовать оператор if
для выполнения всего, что я упомянул, и как интегрировать мой код checklogin.php
в код моей страницы входа.
Спасибо,
Neil