menusearch
javapro.ir

جلسه چهاردهم:ورود کاربر

جستجو
دوشنبه ۲۳ مهر ۱۴۰۳ | ۱:۳۸:۱۹
۱۳۹۸/۱۲/۲۶ دوشنبه
(3)
(0)
جلسه چهاردهم:ورود کاربر
جلسه چهاردهم:ورود کاربر

آموزش ساخت برنامه اینستاگرام با اندروید

 

به نام خدا

 

عرض سلام و درود خدمت شما دوستان عزیز و همراهان همیشگی جاوا پرو
امیدوارم حالتون خوب باشه و ایام هم به کامتون باشه
این جلسه با برنامه نویسی ورود کاربر در برنامه اینستاگرام در خدمت شما عزیزان هستیم
در جلسه قبلی آموزش پروژه محور ساخت برنامه ایسنتاگرام ما ثبت نام کاربر رو برنامه نویسی کردیم و الان کاربر توی برنامه ما ثبت نام کرده و اطلاعات کاربرمون توی دیتابیس ذخیره شده
در این جلسه آموزش پروژه محور ساخت برنامه اینستاگرام ما میخوایم همون اطلاعات رو از دیتابیس بخونیم و ورود کاربر رو برنامه نویسی کنیم.
ابتدا سمت سرور رو برنامه نویسی میکنیم و بعد میریم سراغ برنامه نویسی سمت کلاینت.
در فولدر htdocs ابتدا یک فایل جدید php میسازیم به نام login.php
و بعد با notepad++ اون رو ویرایش میکنیم.
ابتدا تگ php رو باز میکنیم به این شکل و کدها رو درون این تگ مینویسیم:

 

<?php


?>


نمونه کد 1


حالا برنامه نویسی سمت سرور رو شروع میکنیم
ما در بخش ورود هم مثل ثبت نام باید با متد post درخواست بدیم چون اطلاعات شخصی کاربرمون رو میخوایم بفرستیم
پس ابتدا مثل برنامه نویسی سمت سرور ثبت نام،بایدچک کنیم متد درخواست پست باشه و اگه متد پست بود عملیات ورود رو انجام بده.
به این شکل:

 

if($_SERVER['REQUEST_METHOD']=='POST'){

}


نمونه کد 2


تمام کدمون در بدنه این شرط باید نوشته بشه
ابتدا باید اتصال به دیتابیس رو برقرار کنیم دقیقا مشابه کد ثبت نام به این شکل:

 

define('HOST','localhost');
define('USER','root');
define('PASS','');
define('DB','instagram');

$conn = mysqli_connect(HOST,USER,PASS,DB);

if (!$conn) {
  die("Connection failed" );
}


نمونه کد 3


حالا در قدم اول باید username و password که از سمت کلاینت میاد رو ذخیره کنیم تا بتونیم ازش استفاده کنیم به این شکل:

 

  $username = mysqli_real_escape_string($conn, $_POST['username']);
   $password = mysqli_real_escape_string($conn, $_POST['password']);


نمونه کد 4


مشابه نمونه کد 4 username و password ارسالی از سمت کلاینت رو توی دوتا متغیر که ساختیم ذخیره میکنیم.
حالا باید کوئری بنویسیم و اطلاعات ارسالی رو با اطلاعات موجود توی دیتابیس مطابقت بدیم که کاربرمون اگه اطلاعات رو درست وارد کرده بود وارد بشه و در غیر این صورت وارد نشه
باز هم مطابق ثبت نام
کوئری رو باز هم به فرم statement مینویسیم
از مزیت های این روش در جلسه قبل گفتیم
به این روش عمل میکنیم:

 

$stmt = $conn->prepare(" select * from user WHERE username = ? and password = ?");
$stmt->bind_param("ss", $username, $password);
$stmt-> exec ute();
$stmt->store_ result ();


نمونه کد 5


کوئری رو به شکل نمونه کد 5 میدیم و دو پارامتری رو که از سمت کلاینت دریافت کردیم بهش پاس میدیم
حالا باید چک کنیم ببینیم آیا اصلا username و password ارسالی از سمت کاربر در دیتابیس وجود داره یا نه
اگر وجود داشته باشه باید تعداد سطرهای موجود $stmt بیشتر از صفر باشه
یعنی چی تعداد سطرها بیشتر از صفر باشه
یعنی اینکه کوئری که ما بهش دادیم تونسته حداقل یک مورد رو در دیتابیس پیدا کنه
پس برای چک کردن از این کار استفاده میکنیم:

 

  if($stmt->num_rows > 0){
   echo "done";    
   }
else{
       echo "error";
   }
   mysqli_close($conn);


نمونه کد 6


در نمونه کد 6 میگیم اگه کوئری که دادیم تونست چیزی رو پیدا کنه پاسخ "done" رو میفرستیم یعنی آقا اطلاعاتی که شما برای ما فرستادی اوکیه و میتونی وارد بشی
اگه هم اطلاعات ارسالی اشتباه بود و مطابقت نداشت یا توی دیتابیس موجود نبود “error” رو ارسال میکنه به کاربرمون و میگه این چیزی که دادی به من توی دیتابیس نیست و اجازه وارد شدن نداری.
و در آخرم اتصال به دیتابیس رو میبندیم.
حالا کد کامل سمت سرور رو میذارم و بعد میریم سمت کلاینتمون رو برنامه نویسی میکنیم.

 

<?php
if($_SERVER['REQUEST_METHOD']=='POST'){

define('HOST','localhost');
define('USER','root');
define('PASS','');
define('DB','instagram');
$conn = mysqli_connect(HOST,USER,PASS,DB);
if (!$conn) {
die("Connection failed" );
}
$username = mysqli_real_escape_string($conn, $_POST['username']);
$password = mysqli_real_escape_string($conn, $_POST['password']);

$stmt = $conn->prepare(" select * from user WHERE username = ? and password = ?");
$stmt->bind_param("ss", $username, $password);
$stmt-> exec ute();
$stmt->store_ result ();
if($stmt->num_rows > 0){
echo "done";
   }else{
   echo "error";
   }
   mysqli_close($conn);
}
?>


نمونه کد 7


نمونه کد 7 کد کامل سمت سرور قسمت ورود هست
حالا میریم و سمت کلاینت رو برنامه نویسی میکنیم با همدیگه
ابتدا Android Studio رو باز میکنیم
و بعد میریم به LoginActivity
باز هم بنده میخوام با استفاده از کتابخانه volley درخواست بدم پس در onCreate مشابه ثبت نام یک صف درخواست میسازیم به این شکل:

 

final RequestQueue queue= Volley.newRequestQueue(this);


نمونه کد 8


روش درخواست کاملا مشابه با قسمت ثبت نام کاربر هست و هیچ تفاوتی با یک دیگر ندارند
چه زمانی باید درخواست بدیم حالا؟
وقتی که کاربر روی دکمه لاگین کلیک کرد و فیلد ها رو به درستی پر کرده بود
ابتدا رویداد کلیک را برای دکمه لاگین تعریف میکنیم به این شکل:

 

login.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {


}


نمونه کد 9


و بعد درون متد oncClick باید با یک شرط چک کنیم که کاربر به درستی فیلدها رو تکمیل کرده باشه به این شکل:

 

if (username.getText().toString().isEmpty() || password.getText().toString().isEmpty()){
  Toast.makeText(LoginActivity.this, "Please fill the fields Correctly", Toast.LENGTH_SHORT).show();
}


نمونه کد 10


در نمونه کد 10 میگیم که اگر کاربر به درستی فیلدها رو تکمیل نکرده باشه و فیلدها خالی باشن باید بهش یه پیغام بدیم که فیلدها رو پر کن واگرنه ما نمیدونیم که چه اطلاعاتی رو باید با دیتابیسمون مقایسه کنیم.
خب حالا اگه به درستی پر کرده بود چی
حالا وقتشه که درخواست بدیم
چون درخواست دقیقا مشابه عملیات ثبت نام هست پس من دیگه مرحله به مرحله پیش نمیرم و تمام کد رو میذارم و بعد اگر توضیحی لازم بود رو عرض میکنم خدمتتون
درخواست به سرور به این شکل انجام میشه:

 

else {
  StringRequest login = new StringRequest(Request.Method.POST, Server.server_address + "login.php", new Response.Listener<String>() {
      @Override
      public void onResponse(String response) {
          if (response.contains("done")) {
              startActivity(new Intent(LoginActivity.this, MainActivity.class));
              finish();
              Toast.makeText(LoginActivity.this, "Login successfully", Toast.LENGTH_SHORT).show();
          } else if (response.contains("error")) {
              Toast.makeText(LoginActivity.this, "Username or password is incorrect", Toast.LENGTH_SHORT).show();
          } else {
              Toast.makeText(LoginActivity.this, "Unable connect to server", Toast.LENGTH_SHORT).show();
          }

      }
  }, new Response.ErrorListener() {
      @Override
      public void onErrorResponse(VolleyError error) {
          Toast.makeText(LoginActivity.this, "Unable connect to server", Toast.LENGTH_SHORT).show();
      }
  }) {
      @Override
      protected Map<String, String> getParams() {
          Map<String, String> params = new HashMap<>();
          params.put("username", username.getText().toString());
          params.put("password", password.getText().toString());
          return params;
      }
  };
  queue.add(login);

}


نمونه کد 11


مطابق عملیات ثبت نام در متد ()getParams اطلاعات رو از فیلدهایی که کاربر پر میکنه میگیریم و به سرور میفرستیم
عملیات ورود به این صورته که اطلاعاتی که کاربر میفرسته به سرور رو باید سرور چک کنه توی دیتابیس هست یا نیست
اگه باشه که اوکیه و سرور هم بهمون میگه "done" و ما اجازه ورود داریم
اگه هم اطلاعات ارسالی ما توی دیتابیس نباشه
سرور میگه "error" یعنی اجازه ورود نداریم
پس سرور فقط 2 پاسخ به ما میده
پس ابتدا به ip شبکه مون و بعد فایل login.php درخواست میدیم و میگیم پاسخی که از سرور میاد برامون هم از نوع String هست و بعد این دو پاسخ رو مطابق نمونه کد 11 در onRespone مدیریت میکنیم و میگیم اگه پاسخ سرور "done" یعنی مثبت بود برو به صفحه اصلی یا همون MainActivity و به کاربرمون هم یه پیام بدیم که ورود با موفقیت همراه بوده
اگر هم پاسخ "error" بود یعنی اطلاعات ارسالی توی دیتابیس وجود نداره پس به کاربر میگیم یوزرنیم یا پسورد اشتباهه
پاسخ غیر از این 2 بود هم که یعنی کلا ارتباط به سرور برقرار نشده و پیغام مربوطش رو به کاربرمون نشون میدیم.
برنامه اگه به قسمت onError هم بره یعنی ارتباط با دیتابیس برقرار نشده پس اینو به کابرمون نشون میدیم.

حالا مجددا ip رو چک میکنیم و بعد xampp رو استارت میکنیم تا سرور مجازیمون ساخته بشه
برنامه رو ران میکنیم
توی صفحه لاگین اطلاعات یعنی یوزرنیم و پسورد رو به این شکل و همونطور که در دیتابیس وجود داره وارد میکنیم و بعد روی لاگین کلیک میکنیم


آموزش اندروید ساخت برنامه اینستاگرام


همونطور که میبینید ما موفقیت وارد میشه تا این جلسه هم به اتمام برسه
سپاس از همراهی شما
خداوند یار و نگهدارتون


این جلسه آموزشی را می‌توانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)

 

 

 

 

دانلود رایگان کتاب اموزش زبان برنامه نویسی جاوا

لینک دانلود کتاب

 

 


نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا
عضو کانال تلگرام ما شوید.

مرتبط با این بخش
سرفصل های دوره رایگان آموزش ساخت اینستاگرامجلسه اول-مفاهیم اولیه(بخش اول)جلسه دوم:مفاهیم اولیه(بخش دوم)جلسه سیزدهم:ثبت نام کاربر جلسه پانزدهم : ورود خودکار کاربر به اینستاگرامجلسه شانزدهم | ساخت برنامه شبیه به اینستاگرام | پست گذاشتن جلسه هفدهم | ساخت برنامه شبیه به اینستاگرام | نمایش لیست هاجلسه هجدهم | ساخت برنامه شبیه به اینستاگرام | پیاده سازی صفحه جستجوجلسه نوزدهم | ساخت برنامه شبیه به اینستاگرام | ویرایش اطلاعات کاربرجلسه بیستم (آخر) | ساخت برنامه شبیه به اینستاگرام | کامل کردن صفحه کاربر7 ایده برای ساخت اپلیکیشن های مرتبط با اینستاگرام که می‌تواند شما را به درآمد برساندجلسه اول | آموزش رایگان ساخت ماشین حساب ساده در برنامه نویسی اندرویدجلسه اول | آموزش ساخت Splash Screen و استفاده از انیمیشن ها در برنامه نویسی اندرویدجلسه اول | آموزش رایگان ساخت برنامه ارسال و دریافت پیامک در برنامه نویسی اندرویدجلسه دوم(آخر) | آموزش رایگان ساخت برنامه ارسال و دریافت پیامک در برنامه نویسی اندرویدجلسه دوم | آموزش رایگان ساخت پایگاه داده در اندروید
نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

1 نظر
حیدر الهائی
پنج شنبه یازدهم فروردین ۰۱
پاسخ
()
()
حیدر الهائی
اگه ميشه فايل پروژه رو تو سايت بزارين
هدر سایت
دوره های مقدماتی تا پیشرفته جاوا، اسپرینگ بوت و اسپرینگ سکیورتی
مشاهده سرفصل ها و ثبت نام در دوره Spring Boot جاواپرو  [کلیک کنید]
آموزش پروژه محور اسپرینگ بوت(Spring Boot)-سیستم دانشگاه
ثبت نام در دوره آموزش Spring security
دوره معماری میکروسرویس ها (Microservices) با استفاده از Spring Boot و Spring Cloud
دوره پرتاب | آموزش پیش نیازهای برنامه نویسی
دوره آموزش مبانی زبان برنامه نویسی جاوا
دوره آموزش مفاهیم پیشرفته زبان برنامه نویسی جاوا
مقدمه ای از زبان برنامه نویسی جاوا(java)
آموزش زبان برنامه نویسی جاوا
آموزش گرافیک در زبان برنامه نویسی جاوا
آموزش مدیریت چیدمان گرافیکی در زبان جاوا
آموزش ساخت بازی دوبعدی در زبان جاوا
Collection ها در زبان برنامه نویسی جاوا
آموزش پروژه محور ساخت برنامه مدیریت بانک با JavaFX
نمونه پروژه های رایگان زبان جاوا
آموزش دیتابیس در زبان برنامه نویسی جاوا
نمونه مثال پایه ای زبان برنامه نویسی جاوا
نمونه مثال String در زبان برنامه نویسی جاوا
آموزش جامع برنامه نویسی JavaFX
آموزش ساخت برنامه آزمون تستی در JavaFX
آموزش برنامه نویسی سوکت در جاوا
آموزش ساخت برنامه دفترچه تلفن با JavaFX
آموزش ساخت ربات ساده تلگرام با زبان جاوا
آموزش ساخت برنامه ماشین حساب با JavaFX
آموزش ساخت برنامه ساده مدیریت ایمیل ها با JavaFX
دوره آموزش Spring Boot
سفارش انجام پروژه زبان برنامه نویسی جاوا(JAVA)
سفارش انجام پروژه برنامه نویسی متلب(MATLAB) با قیمت منصفانه و تحویل به موقع
سفارش انجام پروژه زبان برنامه نویسی سی شارپ (#C)
سفارش انجام پروژه زبان برنامه نویسی سی(C)
سفارش انجام پروژه زبان برنامه نویسی پایتون(Python)
سفارش انجام پروژه زبان برنامه نویسی PHP (پی اچ پی)
سفارش انجام پروژه زبان برنامه نویسی اسمبلی(Assembly)
سفارش انجام پروژه زبان برنامه نویسی جاوا اسکریپت (Javascript)
سفارش انجام پروژه هوش مصنوعی
سفارش انجام پروژه طراحی الگوریتم
سفارش انجام پروژه ساختمان داده ها
سفارش انجام پروژه مهندسی نرم افزار
سفارش انجام پروژه شبکه های کامپیوتری
سفارش انجام پروژه پایگاه داده: دیتابیس (database)
 سفارش انجام پروژه سیستم عامل
سفارش انجام پروژه پاورپوینت(PowerPoint)
سفارش انجام پروژه اکسل (Excel)
سفارش انجام تحقیق و تهیه مقاله
سوالات متداول برنامه نویسی
جدیدترین مطالب
گفتگو را شروع کنید
مشاوره ،تدریس خصوصی و سفارش انجام انواع پروژه های برنامه نویسی