پرش به محتوای اصلی
مسیر تخصصی جاوا و Spring
درخواست پروژهارتباط با ماراهنما
جاواپرو v1.1.2یاد بگیر، تمرین کن، حرفه‌ای بساز
خانهدوره‌هاآموزش رایگانوبلاگمدرس‌هاخدمات
خانهجلسه سیزدهم:ثبت نام کاربر
آموزش برنامه نویسی »

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

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

۹ دقیقه مطالعهآموزش برنامه نویسی »آموزش جاوا و انجام پروژه های برنامه نویسی
جلسه سیزدهم:ثبت نام کاربر
محتوای منتخب جاواپرو

خلاصه مطلب

دوره رایگان آموزش پروژه محور ساخت برنامه اینستاگرام با برنامه نویسی اندروید
نوع محتوامقاله آموزشی
موضوعآموزش برنامه نویسی »
زمان مطالعه۹ دقیقه
آخرین ویرایش۲۴ اسفند ۱۳۹۸
/uploadfile/file_portal/site_2237_web/file_portal_end/بخش-محتوایی-سایت/اندروید/آموزش-ساخت-اینستاگرام/جلسه-13-min.png
/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++ به این شکل باز میکنیم و کدهامون رو درون این تگ مینویسیم:

نمونه کد 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->execute(); $stmt->store_result(); if($stmt->num_rows > 0){ echo " exists "; $stmt->close(); }

نمونه کد 5

ابتدا من توضیح بدم نمونه کد 5 چیکار میکنه بعدا نکاتش رو میگم و شما رو با statements کاملا اشنا خواهم کرد و مزیت هاش رو عرض خواهم کرد. نمونه کد 5 ابتدا میاد چک میکنه که یوزر نیم و ایمیلی که ما از سمت اپلیکیشن ارسال کردیم توی جدولمون هست یا نه خب اگه باشه یعنی کاربر قبلا ثبت نام کرده و نمیشه دوتا کاربر یوزرنیم و ایمیل یکسان داشته باشن پس توی یک شرط چک میکنیم اگر موجود بود باید به ما پیغام موجودیت بده(echo “ exists ”;) خب حالا چرا 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->execute()){ echo "done"; } else{ echo "error"; } } mysqli_close($conn);

نمونه کد 6

مطابق نمونه کد 6 اطلاعات ارسالی از سمت کاربر رو به دیتابیسمون وارد میکنیم اگر با موفقیت کوئری انجام شد و اطلاعات وارد شد پیغام (done) رو میدیم و در غیر اینصورت بهمون error میده و در اخر هم اتصال به دیتابیسمون رو میبندیم. کد کلی سمت سرور رو میذارم و بعد میریم سمت کلاینت یعنی در اندروید رو هم برنامه نویسی میکنیم.

نمونه کد 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 به برناممون دسترسی اینترنت میدیم به این شکل:

دسترسی 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 شده) در لینک زیر دریافت کنید.این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)

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

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

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

برچسب‌هاآموزش برنامه نویسی »آموزش ساخت برنامه ای شبیه به اینستاگرام »آموزش برنامه نویسی اندروید »آموزش پروژه محور اندرویدآموزش رایگان پروژه محور اندروید استودیوآموزش رایگان برنامه نویسی اندروید پروژه محورآموزش پروژه محور برنامه نویسی اندروید پایه تا پیشرفتهدوره پروژه محور اندرویدپروژه اندرویدپروژه رایگان اندرویدنمونه پروژه اندرویدپروژه بزرگ اندرویدآموزش پروژه اندرویدآموزش برنامه نویسی اندرویدانلود رایگان آموزش پروژه محور اندروید
ادامه مسیر

پیشنهاد جاواپرو

موضوع را با آموزش‌های مرتبط ادامه دهید و نکته‌های کاربردی را در مسیر خود نگه دارید

مشاهده دوره‌ها
مطالب پیشنهادی

ادامه مطالعه

xدسته‌بندی نشده
۱۱ دی ۱۳۹۸ مطالعه کوتاه

x

پادکست شماره 3 – راه های کسب درآمد از برنامه نویسی

مطالعه مطلب
پادکست شماره 3 - راه های کسب درآمد از برنامه نویسیپادکست
۲۹ اردیبهشت ۱۴۰۴ مطالعه کوتاه

پادکست شماره 3 - راه های کسب درآمد از برنامه نویسی

در این پادکست برنامه نویسی به شیوه ها و راه های کسب درآمد از برنامه نویسی پرداخته ایم. یک کاغذ و قلم بردارید و به پادکست گوش بدید.

مطالعه مطلب
پادکست شماره 2 - چگونه وارد فضای برنامه نویسی شویم؟پادکست
۲۹ اردیبهشت ۱۴۰۴ مطالعه کوتاه

پادکست شماره 2 - چگونه وارد فضای برنامه نویسی شویم؟

در این پادکست برنامه نویسی یاد میگیریم که چگونه وارد فضای برنامه نویسی شویم و تخصص برنامه نویسی را به دست آوریم.

مطالعه مطلب
جاواپرومرجع تخصصی یادگیری و توسعهٔ جاوا

تجربه‌ای منظم، ساده و حرفه‌ای برای یادگیری عمیق جاوا، Spring و مهندسی نرم‌افزار؛ قابل استفاده در موبایل، تبلت و دسکتاپ

یادگیری

همه دوره‌هاآموزش رایگانمسیر یادگیریمدرس‌ها

جاواپرو

درباره ماخدمات تخصصیدرخواست پروژهبلاگ فنی

پشتیبانی

تماس با ماپرسش‌های متداولقوانین و حریم خصوصیثبت تیکت
خرید امنپرداخت فقط در درگاه رسمیپشتیبانی آموزشیمسیر ارتباط شفاف و پیگیری‌پذیردسترسی پایداروب‌اپ واکنش‌گرا روی همه دستگاه‌ها
© ۱۴۰۵ جاواپرو؛ همه حقوق محفوظ استتوسعه توسط پایاپینگ
خانهدوره‌هاسبد