در آموزش قبلی ، ما با استفاده از دستورات آماده شده توسط 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