آموزش بعدی ||||| آموزش قبلی
برای انجام این فعالیت باید آموزش قبلی را مطالعه و پیاده سازی کرده باشید. جهت ورود به سیستم ابتدا باید بررسی کنیم نام کاربری و رمز عبور مربوط به کاربر به درستی وارد شده یا خیر. برای این منظور متد userLogin را به کلاس DbOperations اضافه می کنیم که بصورت زیر است:
public function userLogin($username,$pass){
$password=md5($pass);
$stmt=$this->con->prepare("select * from `users` where `username`=? and `password`=?");
$stmt->bind_param("ss",$username,$password);
$stmt->execute();
$stmt->store_result();
return $stmt->num_rows()>0;
}
کد فوق ابتدا با تابع md5 پسورد وارد شده توسط کاربر را کدگذاری می کند سپس مقدار پسورد کدگذاری شده و نام کاربری دریافت شده از طریق کد SQL مورد بررسی قرار می گیرند. چنانچه رکوردی در بانک اطلاعاتی وجود داشت که نام کاربری و رمز عبور آن مانند مقادیر باشد که کاربر وارد کرده یعنی یک رکورد وجود دارد و مقدار تابع num_rows بیش از صفر خواهد بود و خروجی این متد true خواهد بود. در غیر اینصورت خروجی این متد false خواهد بود.
حال باید یک کلاس جدید ایجاد کرد و ابتدا بررسی کرد آیا با متد POST پارامترها دریافت شدند یا خیر. سپس باید بررسی کرد پارامترها دارای مقدار هستند و در انتها باید به کمک متد userLogin بررسی شود آیا رکورد متناظر وجود دارد یا خیر. کد این مراحل به صورت زیر است:
<?php
include_once '../includes/DbOperations.php';
$response=array();
if($_SERVER['REQUEST_METHOD']=='POST'){
if (isset($_POST['username']) and isset($_POST['password']) ) {
$db=new DbOperations();
if ($db->userLogin($_POST['username'],$_POST['password'])) {
$response['error']=false;
$response['message']="You can login";
$user=$db->getUserByUsername($_POST['username']);
$response['id']=$user['id'];
$response['username']=$user['username'];
//$response['password']=$user['password'];
$response['email']=$user['email'];
}else {
$response['error']=true;
$response['message']="Username or password is invalid";
}
}else{
$response['error']=true;
$response['message']="Please enter required fields";
}
}else{
$response['error']=true;
$response['message']="Invalid Request";
}
echo json_encode($response);
?>
همانطوریکه در کد فوق مشاهده می شود چنانچه نام کاربر و رمز عبور صحیح وارد شده باشد باید مقادیر آن رکورد نمایش داده شود. برای این منظور از متد getUserByUserName استفاده می شود. این متد در کلاس DBOperation تعریف می شود و دارای کد زیر است:
public function getUserByUsername($username){
$stmt=$this->con->prepare("select * from `users` where `username`=?");
$stmt->bind_param("s",$username);
$stmt->execute();
return $stmt->get_result()->fetch_assoc();
}
حال نوبت آن است که کد نوشته شده را اجرا کنیم. برای این منظور در نرم افزار postman آدرس زیر را وارد نموده و مطابق عکس زیر تنظیمات انجام می شود.

لازم به یادآوری است که باید ابتدا wamp اجرا باشد. نکته دیگر اینکه در جدول اطلاعات وارد شده موجود است و خروجی به صورت زیر است:
