menusearch
javapro.ir

جلسه سیزدهم:ثبت نام کاربر

جستجو
شنبه ۱ دی ۱۴۰۳ | ۱۷:۱۰:۴۲
۱۳۹۸/۱۲/۱۷ شنبه
(0)
(0)
جلسه سیزدهم:ثبت نام کاربر
جلسه سیزدهم:ثبت نام کاربر

/uploadfile/file_portal/site_2237_web/file_portal_end/بخش-محتوایی-سایت/اندروید/آموزش-ساخت-اینستاگرام/جلسه-13-min.png

 

به نام خدا

 

عرض سلام و درود خدمت شما همراهان عزیز سایت جاوا پرو
امیدوارم حالتون خوب و ایام به کامتون باشه
این جلسه با روش ثبت نام کاربر در خدمت شما عزیزان هستم
اول از همه میریم و شبیه ساز سرور رو فعال میکنیم
و به ادرس http://localhost/phpmyadmin/ میریم
در اینجا باید در دیتابیس Instagram که قبلا ساختیم table بسازیم تا بتونیم اطلاعات کابرمون رو درونش ذخیره کنیم.


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

 

مطابق مراحل تصویر 1 و گام به گام با بنده پیش برید
1)ابتدا new رو بزنید
2)در قسمت Table name اسم جدولمون رو میذاریم user
3)تعداد ستون هایی که برای جدول لازم داریم فعلا 7 ستون هست،4 تا رو داریم پس 3 تای دیگه رو اضافه میکنیم(اگر در ادامه بیشتر لازم شد اضافه میکنیم)
4)روی go کلیک میکنیم و به مرحله بعد میریم(تصویر2)


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

اطلاعات رو طبق تصویر 2 وارد میکنیم
این اطلاعات،تمام ویژگی های کاربر ما هست و یک آیدی از نوع primary key و auto increment برای اینکه هر آیدی مختص یک کاربر باشد و با ساخت هر کاربر جدید آیدی نیز خودکار افزایش یابد پس به یاد داشته باشید که تیک آن را فعال کنید.
Enter رو میزنیم و سپس جدول ما ساخته میشه.
حالا باید بریم و فایل php برای اتصال به دیتابیس ثبت نام کاربر رو برنامه نویسی کنیم.
ابتدا به ادرس c/xampp/htdocs و پوشه Instagram که قبلا ساختیم میریم و یک فایل جدید php به نام signup.php
میسازیم و با محیط notepad++ کدهای لازم رو مینویسیم.
تگ php رو در notepad++ به این شکل باز میکنیم و کدهامون رو درون این تگ مینویسیم:

 

<?php

کدها رواینجا مینویسیم

?>

 

نمونه کد 1

 

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

 

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

 

حالا در ادامه باید 4 تا متغیر تعریف میکنیم برای 4 فیلد username,email,password,fullname که قراره از قسمت اندروید ارسال بشه رو دریافت کنیم و در این متغیر ها رو ذخیره کنیم تا بتونیم ازشون استفاده کنیم به این شکل:

 

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

 

نمونه کد 4

 

حالا باید چک کنیم که username و email ارسالی از سمت کاربر در دیتابیس موجود نباشد(دقیقا مثل الان اینستاگرام که ایمیل و یوزرنیم تکراری مورد قبول نیست و دو کاربر نمیتونن ایمیل و یوزرنیم یکسان داشته باشن)
این موضوع رو هم به صورت زیر(نمونه کد 4) هندل میکنیم که اگر از قبل یوزر نیم و یا ایمیل یکسان موجود بود به ما ارور بده به این شکل:

 

$stmt = $conn->prepare(" select id from user WHERE username = ? or email = ?");
$stmt->bind_param("ss", $username, $email);
$stmt-> exec ute();
$stmt->store_ result ();
if($stmt->num_rows > 0){
echo "  exist s ";
$stmt->close();
}

 

نمونه کد 5


ابتدا من توضیح بدم نمونه کد 5 چیکار میکنه
بعدا نکاتش رو میگم و شما رو با statements کاملا اشنا خواهم کرد و مزیت هاش رو عرض خواهم کرد.
نمونه کد 5 ابتدا میاد چک میکنه که یوزر نیم و ایمیلی که ما از سمت اپلیکیشن ارسال کردیم توی جدولمون هست یا نه
خب اگه باشه یعنی کاربر قبلا ثبت نام کرده و نمیشه دوتا کاربر یوزرنیم و ایمیل یکسان داشته باشن پس توی یک شرط چک میکنیم اگر موجود بود باید به ما پیغام موجودیت بده(echo “  exist s ”;)
خب حالا چرا statement رو آموزش دادیم؟
این روش خیلی ایمن تر هست نسبت به روش عادی که هر بار کوئری بنویسیم و پارامترها رو بهش توی همون کوئری بدیم
ایمن از این جهت که توی این روش SQL injection رخ نمیده و توی پروژه های بزرگ از این روش استفاده بشه بسیار بهتره.
مزیت های دیگری هم نسبت به روش عادی داره که بنده به دلیل زیاد شدن مطالب از گفتنش صرف نظر میکنم ولی اگر علاقه مندید بدونید میتونید سرچ کنید و ببینید.
خب حالا این مشکل رو هم هندل کردیم با هم دیگه
شرط گذاشتیم که اگه موجود بود به ما پیغام وجود داشتن رو بده
حالا اگه یوزر نیم و ایمیل از قبل موجود نبود چی؟
خب این خیلی خوبه
این یوزرنیم و ایمیل و بقیه اطلاعات کاربر رو به دیتابیسمون وارد میکنیم و عملیات ثبت نام با موفقیت انجام میشه به این شکل:

 

  else{
       $stmt = $conn->prepare(" insert   into user (username, email, password, fullname) VALUES (?, ?, ?, ?)");
       $stmt->bind_param("ssss", $username, $email, $password, $fullname);
   if($stmt-> exec ute()){    
       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']);
$email = mysqli_real_escape_string($conn, $_POST['email']);
$password = mysqli_real_escape_string($conn, $_POST['password']);
$fullname = mysqli_real_escape_string($conn, $_POST['fullname']);

$stmt = $conn->prepare(" select id from user WHERE username = ? or email = ?");
$stmt->bind_param("ss", $username, $email);
$stmt-> exec ute();
$stmt->store_ result ();
//if the user already exist in the database
if($stmt->num_rows > 0){
echo "  exist s ";
$stmt->close();
}
else{
$stmt = $conn->prepare(" insert   into user (username, email, password, fullname) VALUES (?, ?, ?, ?)");
$stmt->bind_param("ssss", $username, $email, $password, $fullname);
if($stmt-> exec ute()){

echo "done";
}
else{
echo "error";
}
}

mysqli_close($conn);
}
?>

 

نمونه کد 7

نمونه کد 7 کد کلی سمت سرورمون هست.
خب حالا میریم توی پروژه مون توی اندروید استودیو
قبل از از اینکه شروع کنم یه نکته رو عرض کنم خدمتتون
بنده توی سرفصل ها بهش اشاره ای نکردم و فقط گفتم که قراره با کتابخانه Android Networking کار کنید و درخواست بدید
حالا یه خبر خوب بدمتون اینکه قراره آموزش کتابخانه معروف Volley هم بدیم بهتون که اگر نیازتون شد بتونید با Volley هم درخواست بدین.
پس حالا بریم و شروع کنیم.
برای اینکه بتونیم از این کتابخانه ها استفاده کنیم باید به پروژه مون اضافه اش کنیم
جلسات پیش کتابخانه عکس دایره ای(circle image view) رو اضافه کردیم و حالا هم مطابق قبل به مسیر build.gradle(module:app) میریم و این دو کتابخونه رو هم به این شکل اضافه میکنیم:

 

implementation 'com.amitshekhar.android:android-networking:1.0.2'
implementation 'com.android.volley:volley:1.1.0'


کتابخانه 1


و بعد تحریم شکن رو روشن میکنیم و روی sync کلیک میکنیم و صبر میکنیم تا کتابخونه ها sync بشن توی پروژه مون.
بعد باید 2 تا کار رو انجام بدیم
اولیش اینه که به برناممون دسترسی اینترنت بدیم یعنی بهش بگیم تو مجازی از اینترنت استفاده کنی چون اگه دسترسی ندیم بهش خودشو مجاز نمیدونه که به اینترنت وصل شه و بهمون خطا میشه
یکی هم اینکه برناممون که اجرا میشه مستقیم میره توی صفحه اصلی یعنی MainActivity
خب ما که اینو نمیخوایم
ما میخوایم مثل اینستاگرام که تازه نصب میکنیم برناممون بعد از اجرا بره توی صفحه ورود(LoginActivity).
برای انجام این دوتا کار باید به manifest بریم.


 
آموزش رایگان پروژه محور اندروید


همه کاری که باید انجام بدیم توی تصویر 3 موجوده
به ترتیب مراحل ابتدا به سر پوشه app میریم
بعدش به manifests و بعد از اون به AndroidManifest.xml میریم
ابتدا مطابق مرحله 4 به برناممون دسترسی اینترنت میدیم به این شکل:

 

<uses-permission android:name="android.permission.INTERNET" />

 

دسترسی 1


بعد برای اینکه برناممون پس از اجرا به صفحه به صفحه لاگین بره باید intent filter ها رو برای لاگین قرار بدیم
هم میتونید اونا رو به اکتیویتی لاگین ببرید و هم میتونید اسم های MainActivty و LoginActivity رو با هم دیگه جاشون عوض کنید.

 

 

در آخر باید مطابق مرحله 5 intent filter ها در قسمت اکتیویتی لاگین باشن.
خب حالا برنامه رو اگه روی شبیه ساز اجرا کنیم باید به صفحه ورود بریم یعنی این صفحه(تصویر 4):


 
آموزش پروژه محور ساخت برنامه اینستاگرام


حالا برناممون مثل اینستاگرام که تازه نصب میکنیم ابتدای کار به صفحه ورود میره ولی ما با صفحه ثبت نام کار داریم و از قبل وقتی که UI این صفحه رو طراحی میکردیم این موضوع رو هم برنامه نویسی کردیم که وقتی کاربر روی Signup کلیک کرد میره به صفحه ثبت نام که ما لازم داریم.
برای اینکه ثبت نام کاربر رو برنامه نویسی کنیم نیاز داریم که به ادرس سرورمون دسترسی داشته باشیم
سرور ما مجازیه و ادرسش همون ادرس ipv4 address شبکه ای که بهش وصل هستید هست.
راه های مختلفی برای دسترسی به این ip هست
راحت ترین راهش اینه که cmd رو باز کنیم و بنویسیم ipconfig و اینتر رو بزنیم و ivp4 address رو ذخیره کنید مثلا برای شبکه ای که بنده بهش وصلم 192.168.1.101 هست(ممکنه تغییر کنه هر بار چک کنید)
چون میخوایم از این ای پی استفاده کنیم برای درخواست دادن و ممکنه عوض بشه پس بهتره یه کلاس بسازیم که این ادرس سرورمون رو درونش نگه داریم
پس یه کلاس جدید میسازیم به نام Server
و درون این کلاس یک string از نوع static و final تعریف میکنیم و ادرس سرورمون رو بهش میدیم به این شکل:

 

public class Server {
  public static final String server_address="http://192.168.1.101/instagram/";

}


نمونه کد 8


بعد از ادرس سرورمون باید اسم پوشه ای که در فولدر htdocs قبلا ساختیم رو بذاریم که ما گذاشتیم instagram(دقت داشته باشید حتما به فرم نمونه کد 8 اطلاعات را وارد کنید).
حالا به SignupActivity میریم
ابتدا توی متد onCreate باید یک RequestQueue برای درخواست دادنمون بسازیم به این شکل:

final RequestQueue queue = Volley.newRequestQueue(this);

 

نمونه کد 9


بعد ما میخوایم وقتی که روی دکمه signup کلیک شد عملیات ثبت نام و درخواست به سرور انجام بشه.
پس برای دکمه signup رویداد کلیک تعریف میکنیم به این شکل:

 

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

}


نمونه کد 10


................ادامه این آموزش را به صورت پی دی اف شده دانلود کنید................

 


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

 

 

 

 

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

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

 

 


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

 

 

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

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

1 نظر
امیرعلی دابوئی
دوشنبه نوزدهم اسفند ۹۸
پاسخ
()
()
امیرعلی دابوئی
عالييي مثل هميشه
پاسخ مدیر سایت
سلام.ممونم امیرعلی جان :-)
پاسخ مدیر سایت
هدر سایت
دوره برنامه نویسی Spring Core
مشاهده سرفصل ها و ثبت نام در دوره 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)
سفارش انجام تحقیق و تهیه مقاله
سوالات متداول برنامه نویسی
جدیدترین مطالب