PHP: Форма входа и регистрации в PHP + MySQL
Простая форма входа и регистрации в PHP + MySQL + Boostrap. В этом руководстве вы узнаете, как создать простую форму входа и регистрации в PHP + MySQL. Мы будем использовать локальный сервер OpenServer
Шаг 1 - Откройте панель управления сервера и создайте проект PHP
Посетите каталог OpenServer/domains. И внутри этого каталога создайте каталог проекта php (назовите его например: auth.loc). Затем перезагрузите сервер, для того, чтобы в списке "Мои проекты" у вас появился ваш только что созданный проект.
Шаг 2 - Создайте базу данных и таблицу
Перейдите в панель управления сервером во вкладку "Дополнительно -> PhpMyAdmin". Авторизуйтесь в ней и создайте базу данных с именем my_db и выполните приведенный ниже запрос в своей базе данных. Приведенный ниже запрос создаст таблицу с именем users в вашей базе данных со следующими полями, такими как uid, name, email, mobile:
CREATE DATABASE my_db;
CREATE TABLE `users` (
`uid` bigint(20) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`mobile` varchar(255) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Шаг 3 - Создайте файл подключения к базе данных
Создайте файл с именем db.php и обновите приведенный ниже код в своем файле.
Приведенный ниже код используется для создания подключения к базе данных MySQL в PHP. Когда вы вставляете данные формы в базу данных MySQL, вы подключаете туда этот файл:
<?php
$servername='localhost';
$username='root';
$password='';
$dbname = "my_db";
$conn=mysqli_connect($servername,$username,$password,"$dbname");
if(!$conn){
die('Could not Connect MySql Server:' .mysql_error());
}
?>
Шаг 4 - Создайте регистрационную форму и вставьте данные в базу данных MySQL
Создать файл регистрационной формы с именем registration.php и добавьте в него следующий код:
<?php
require_once "db.php";
if (isset($_SESSION['user_id']) != "") {
header("Location: dashboard.php");
}
if (isset($_POST['signup'])) {
$name = mysqli_real_escape_string($conn, $_POST['name']);
$email = mysqli_real_escape_string($conn, $_POST['email']);
$mobile = mysqli_real_escape_string($conn, $_POST['mobile']);
$password = mysqli_real_escape_string($conn, $_POST['password']);
$cpassword = mysqli_real_escape_string($conn, $_POST['cpassword']);
if (!preg_match("/^[a-zA-Z ]+$/", $name)) {
$name_error = "Name must contain only alphabets and space";
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$email_error = "Please Enter Valid Email ID";
}
if (strlen($password) < 6) {
$password_error = "Password must be minimum of 6 characters";
}
if (strlen($mobile) < 10) {
$mobile_error = "Mobile number must be minimum of 10 characters";
}
if ($password != $cpassword) {
$cpassword_error = "Password and Confirm Password doesn't match";
}
if (mysqli_query($conn, "INSERT INTO users(name, email, mobile_number ,password) VALUES('" . $name . "', '" . $email . "', '" . $mobile . "', '" . md5($password) . "')")) {
header("location: login.php");
exit();
} else {
echo "Error: " . mysqli_error($conn);
}
mysqli_close($conn);
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Simple Registration Form in PHP with Validation</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="row">
<div class="col-lg-8 col-offset-2">
<div class="page-header">
<h2>Registration Form in PHP with Validation</h2>
</div>
<p>Please fill all fields in the form</p>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
<div class="form-group">
<label>Name</label>
<input type="text" name="name" class="form-control" value="" maxlength="50" required="">
<span class="text-danger"><?php if (isset($name_error)) echo $name_error; ?></span>
</div>
<div class="form-group ">
<label>Email</label>
<input type="email" name="email" class="form-control" value="" maxlength="30" required="">
<span class="text-danger"><?php if (isset($email_error)) echo $email_error; ?></span>
</div>
<div class="form-group">
<label>Mobile</label>
<input type="text" name="mobile" class="form-control" value="" maxlength="12" required="">
<span class="text-danger"><?php if (isset($mobile_error)) echo $mobile_error; ?></span>
</div>
<div class="form-group">
<label>Password</label>
<input type="password" name="password" class="form-control" value="" maxlength="8" required="">
<span class="text-danger"><?php if (isset($password_error)) echo $password_error; ?></span>
</div>
<div class="form-group">
<label>Confirm Password</label>
<input type="password" name="cpassword" class="form-control" value="" maxlength="8" required="">
<span class="text-danger"><?php if (isset($cpassword_error)) echo $cpassword_error; ?></span>
</div>
<input type="submit" class="btn btn-primary" name="signup" value="submit">
Already have a account?<a href="login.php" class="btn btn-default">Login</a>
</form>
</div>
</div>
</div>
</body>
</html>
Шаг 5 - Создайте форму входа в PHP с MySQL
Создайте форму входа в систему, в которой вы принимаете идентификатор электронной почты и пароль пользователя и аутентифицируете пользователей из базы данных. Таким образом, вы можете создать файл login.php и добавить в свой файл приведенный ниже код:
<?php
session_start();
require_once "db.php";
if (isset($_SESSION['user_id']) != "") {
header("Location: dashboard.php");
}
if (isset($_POST['login'])) {
$email = mysqli_real_escape_string($conn, $_POST['email']);
$password = mysqli_real_escape_string($conn, $_POST['password']);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$email_error = "Please Enter Valid Email ID";
}
if (strlen($password) < 6) {
$password_error = "Password must be minimum of 6 characters";
}
$result = mysqli_query($conn, "SELECT * FROM users WHERE email = '" . $email . "' and pass = '" . md5($password) . "'");
if (!empty($result)) {
if ($row = mysqli_fetch_array($result)) {
$_SESSION['user_id'] = $row['uid'];
$_SESSION['user_name'] = $row['name'];
$_SESSION['user_email'] = $row['email'];
$_SESSION['user_mobile'] = $row['mobile'];
header("Location: dashboard.php");
}
} else {
$error_message = "Incorrect Email or Password!!!";
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Simple Login Form in PHP with Validation</title>
<link rel="stylesheet" type="text/css" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="row">
<div class="col-lg-10">
<div class="page-header">
<h2>Login Form in PHP with Validation</h2>
</div>
<p>Please fill all fields in the form</p>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
<div class="form-group ">
<label>Email</label>
<input type="email" name="email" class="form-control" value="" maxlength="30" required="">
<span class="text-danger"><?php if (isset($email_error)) echo $email_error; ?></span>
</div>
<div class="form-group">
<label>Password</label>
<input type="password" name="password" class="form-control" value="" maxlength="8" required="">
<span class="text-danger"><?php if (isset($password_error)) echo $password_error; ?></span>
</div>
<input type="submit" class="btn btn-primary" name="login" value="submit">
<br>
You don't have account?<a href="registration.php" class="mt-3">Click Here</a>
</form>
</div>
</div>
</div>
</body>
</html>
Шаг 6 - Создайте профиль пользователя и получите данные из базы данных
Создайте новый файл с именем dashboard.php и добавьте в него приведенный ниже код.
Приведенный ниже код используется для отображения данных пользователя, вошедшего в систему.
<?php
session_start();
if (isset($_SESSION['user_login_id']) == "") {
header("Location: login.php");
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>User Info Dashboard</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="row">
<div class="col-lg-8">
<div class="card">
<div class="card-body">
<h5 class="card-title">Name :- <?php echo $_SESSION['user_name'] ?></h5>
<p class="card-text">Email :- <?php echo $_SESSION['user_email'] ?></p>
<p class="card-text">Mobile :- <?php echo $_SESSION['user_mobile'] ?></p>
<a href="logout.php" class="btn btn-primary">Logout</a>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
Шаг 7 - Создайте файл Logout.php
Создайте файл logout.php и обновите приведенный ниже код в свой файл.
Приведенный ниже код используется для уничтожения входа в систему и выхода из системы.
<?php
ob_start();
session_start();
if(isset($_SESSION['user_login_id'])) {
session_destroy();
unset($_SESSION['user_id']);
unset($_SESSION['user_name']);
unset($_SESSION['user_email']);
unset($_SESSION['user_mobile']);
header("Location: login.php");
} else {
header("Location: login.php");
}
?>
Простая форма входа и регистрации на php с базой данных mysql с использованием OpenServer; В этом руководстве вы узнали, как создать простую систему входа, регистрации и выхода из системы в PHP MySQL с проверкой. Кроме того, вы узнали, как аутентифицировать и выходить из системы вошедших в систему пользователей в PHP.
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.