در آموزش قبلی ، ما با استفاده از دستورات آماده شده توسط PHP ، عملیات خام را یاد گرفتیم. اکنون در این آموزش ، ما با استفاده از عبارات آماده شده ، ثبت نام و ورود کاربر را یاد می گیریم.
ساختار فایل برای این آموزش
- config.php (پرونده اتصال پایگاه داده)
- index.php (صفحه ثبت نام)
- login.php (صفحه ورود به سیستم)
- Welcome.php (پس از ورود موفقیت آمیز کاربر به این صفحه هدایت می شود)
- logout.php (صفحه ورود به سیستم)
- stmt.sql (پرونده SQl)
جدول MySQL (tblusers
) ساختار مورد استفاده در این آموزش
CREATE TABLE `tblusers` (
`id` int(11) NOT NULL,
`FullName` varchar(255) DEFAULT NULL,
`EmailId` varchar(255) DEFAULT NULL,
`MobileNumber` bigint(10) DEFAULT NULL,
`Password` varchar(255) DEFAULT NULL,
`RegDate` timestamp NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
پرونده اتصال پایگاه داده (Config.php
)
در این فایل می توانید نام پایگاه داده را با توجه به پایگاه داده خود تغییر دهید. استفاده می کنیم stmt
پایگاه داده
<?php
$dbuser="root";
$dbpass="";
$host="localhost";
$dbname = "stmt";
$mysqli = new mysqli($host, $dbuser, $dbpass, $dbname);
?>
اکنون یک فرم HTML برای ثبت نام کاربر ایجاد کنید (index.php
)
<form method="post">
<h2>User Sign Up </h2>
<p>Please fill in this form to create an account!</p>
<hr>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">
<span class="fa fa-user"></span>
</span>
</div>
<input type="text" class="form-control" name="fullname" placeholder="Full Name" required="required" pattern="[A-Za-z ]+" title="Letters only">
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">
<i class="fa fa-paper-plane"></i>
</span>
</div>
<input type="email" class="form-control" name="email" placeholder="Email Address" required="required" title="Valid Email id">
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">
<i class="fa fa-mobile"></i>
</span>
</div>
<input type="tel" class="form-control" name="mobilenumber" placeholder="Mobile Number" required="required" pattern="[0-9]{10}" title="10 numeric characters only">
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">
<i class="fa fa-lock"></i>
</span>
</div>
<input type="password" class="form-control" name="password" placeholder="Password" required="required" pattern="(?=.*d)(?=.*[a-z])(?=.*[A-Z]).{6,}" title="At least one number and one uppercase and lowercase letter, and at least 6 or more characters">
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-lg" name="signup">Sign Up</button>
</div>
</form>
کد PHP برای ثبت نام کاربر. این کد را در قسمت بالای آن قرار دهید index.php
صفحه
<?php
include_once('config.php');
//Coding For Signup
if(isset($_POST['signup']))
{
//Getting Psot Values
$fname=$_POST['fullname'];
$email=$_POST['email'];
$mobile=$_POST['mobilenumber'];
$pass=$_POST['password'];
//Checking email id exist for not
$result ="SELECT count(*) FROM tblusers WHERE EmailId=?";
$stmt = $mysqli->prepare($result);
$stmt->bind_param('s',$email);$stmt->execute();
$stmt->bind_result($count);
$stmt->fetch();
$stmt->close();
//if email already exist
if($count>0)
{
echo "<script>alert('Email id already associated with another account. Please try with diffrent EmailId.');</script>";
}
// If email not exist
else {
$sql="INSERT into tblusers(FullName,EmailId,MobileNumber,Password)VALUES(?,?,?,?)";
$stmti = $mysqli->prepare($sql);
$stmti->bind_param('ssis',$fname,$email,$mobile,$pass);
$stmti->execute();
$stmti->close();
echo "<script>alert('User registration successful');</script>";
}
}
?>
پس از ثبت نام کاربر ، ما یک فرم HTML برای ورود ایجاد می کنیم (login.php
)
<form method="post">
<h2>User Login</h2>
<hr>
<div class="form-group">
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">
<i class="fa fa-paper-plane"></i>
</span>
</div>
<input type="email" class="form-control" name="email" placeholder="Email Address" required="required" title="Valid Email id">
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">
<i class="fa fa-lock"></i>
</span>
</div>
<input type="password" class="form-control" name="password" placeholder="Password" required="required">
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-lg" name="login">Login</button>
</div>
</form>
کد PHP برای ورود کاربر این کد را در قسمت بالا قرار دهید login.php
صفحه
<?php session_start();
include_once('config.php');
//Coding For Signup
if(isset($_POST['login']))
{
//Getting Psot Values
$email=$_POST['email'];
$pass=$_POST['password'];
$stmt = $mysqli->prepare( "SELECT FullName,id FROM tblusers WHERE (EmailId=? || Password=?)");
$stmt->bind_param('ss',$email,$pass);
$stmt->execute();
$stmt->bind_result($FullName,$id);
$rs= $stmt->fetch ();
$stmt->close();
if (!$rs) {
echo "<script>alert('Invalid Details. Please try again.')</script>";
}
else {
$_SESSION['fname']=$FullName;
$_SESSION['uid']=$id;
header('location:welcome.php');
}
}
?>
پس از ورود موفقیت آمیز ، کاربری را که به آن رجوع می کنیم welcome.php
صفحه اگر کسی بخواهد بدون ورود به سیستم به این صفحه دسترسی پیدا کند ، این صفحه را تأیید کنید. کاربر به طور خودکار به login.php هدایت می شود.
<?php session_start();
//Validation login Session
if(strlen($_SESSION['uid'])==0)
{
header("Location:logout.php"); }
else{
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:400,700">
<title>Welcome</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script>
<style>
body {
color: #fff;
background: #19aa8d;
font-family: 'Roboto', sans-serif;
}
.form-control {
font-size: 15px;
}
.form-control, .form-control:focus, .input-group-text {
border-color: #e1e1e1;
}
.form-control, .btn {
border-radius: 3px;
}
.signup-form {
width: 400px;
margin: 0 auto;
padding: 30px 0;
}
.signup-form form {
color: #999;
border-radius: 3px;
margin-bottom: 15px;
background: #fff;
box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
padding: 30px;
}
.signup-form h2 {
color: #333;
font-weight: bold;
margin-top: 0;
}
.signup-form hr {
margin: 0 -30px 20px;
}
.signup-form .form-group {
margin-bottom: 20px;
}
.signup-form label {
font-weight: normal;
font-size: 15px;
}
.signup-form .form-control {
min-height: 38px;
box-shadow: none !important;
}
.signup-form .input-group-addon {
max-width: 42px;
text-align: center;
}
.signup-form .btn, .signup-form .btn:active {
font-size: 16px;
font-weight: bold;
background: #19aa8d !important;
border: none;
min-width: 140px;
}
.signup-form .btn:hover, .signup-form .btn:focus {
background: #179b81 !important;
}
.signup-form a {
color: #fff;
text-decoration: underline;
}
.signup-form a:hover {
text-decoration: none;
}
.signup-form form a {
color: #19aa8d;
text-decoration: none;
}
.signup-form form a:hover {
text-decoration: underline;
}
.signup-form .fa {
font-size: 21px;
}
.signup-form .fa-paper-plane {
font-size: 18px;
}
.signup-form .fa-check {
color: #fff;
left: 17px;
top: 18px;
font-size: 7px;
position: absolute;
}
</style>
</head>
<body>
<div class="signup-form">
<form method="post">
<h2>Welcome <?php echo $_SESSION['fname'];?></h2>
<hr>
<div class="form-group">
<div class="form-group" align="center">
<a class="btn btn-primary btn-lg" href="logout.php" style="color:#fff">Logout</a>
</div>
</form>
</div>
</body>
</html>
<?php } ?>
اکنون صفحه ای برای خروج از سیستم ایجاد خواهیم کرد (logout.php
)
صفحه خروج برای از بین بردن جلسه استفاده می شود.
<?php
session_start();
session_destroy();
header('location:login.php')
?>
مشاهده نسخه ی نمایشی ++++++++++++++++++++++++++++++++
نحوه ثبت نام کاربر و ورود به سیستم با استفاده از دستورات آماده شده PHP
- فایل zip را بارگیری کنید
- پرونده را استخراج کرده و کپی کنید
pstmt-signup
پوشه - چسباندن داخل فهرست ریشه (برای xampp xampp / htdocs ، برای wamp wamp / www ، برای لامپ var / www / html)
- PHPMyAdmin را باز کنید (http: // localhost / phpmyadmin)
- یک پایگاه داده با نام ایجاد کنید
stmt
- وارد كردن
stmt.sql
پرونده (در داخل بسته zip در پوشه پرونده SQL آورده شده است) - اسکریپت را اجرا کنید
http://localhost/pstmt-signup
بارگیری کد منبع (ثبت نام کاربر و ورود به سیستم با استفاده از بیانیه های آماده PHP)
اندازه: 8.28 کیلوبایت
نسخه: V 1.0