آموزش ارتباط با سرور آنلاین در B4A – قسمت چهارم(درج اطلاعات)
سلام
با چهارمین و آخرین جلسه از آموزش ارتباط با سرور آنلاین در بیسیک فور اندروید در خدمتتون هستیم، جلسات قبلی:
- آموزش ارتباط با سرور آنلاین در B4A – قسمت اول(مقدمه)
- آموزش ارتباط با سرور آنلاین در B4A – قسمت دوم(ساخت دیتابیس)
- آموزش ارتباط با سرور آنلاین در B4A – قسمت سوم(کدهای ثبت نام سمت سرور)
در این جلسه می پردازیم به کد نویسی در محیط بیسیک فور اندروید، همانطور هم که قبلا گفتیم قصد داریم یک برنامه ثبت نام آنلاین بسازیم، در جلسه قبل کدهای PHP را برای ارتباط با سرور نوشتیم، حال در این جلسه با کدهایی که در بیسیک فور اندروید می نویسیم با فایل Register.php که کدهای PHP ثبت نام ما در این فایل قرار دارد، ارتباط برقرار می کنیم.
آموزش:
- بیسیک فور اندروید را اجرا کنید و ذخیره کنید.
- به دیزاینر رفته و دوتا EditText و دوتا Label و یک Button ایجاد کنید.
برای راحتی کار در هنگام کد نویسی، نام یکی از EditText ها را به text_user و یکی دیگر را به text_pass تغییر دادم و همچنین نام Button را به btn_register تغییر دادم، متن Label1 را نام کاربری و متن Label2 را رمز عبور قرار دادم.
که در واقع محیط برنامه باید چیزی شبیه شکل زیر باشه:
- دو EditText را به برنامه تعریف کنید، و Button را علاوه بر اینکه به برنامه تعریف میکنید، رویداد کلیکش را هم تعریف کنید.
۱ ۲ ۳ |
Private text_user As EditText Private text_pass As EditText Private btn_register As Button |
۱ ۲ ۳ |
Sub btn_register_Click End Sub |
- برای ارتباط با سرور آنلاین از کتابخانه httputils استفاده می کنیم، پس ابتدا کتابخانه را به برنامه اضافه کنید.
- سپس یک متغیر از نوع HttpJob تعریف و Initialize می کنیم.
- کتابخانه HttpJob یک sub داره که sub را به این گونه تعریف میکنیم:
۱ ۲ ۳ |
Sub Jobdone (job As HttpJob) End Sub |
- در قسمت Sub JobDone که مربوط به کاری هست که میخواهیم انجام بدیم، کدهای زیر را می نویسیم:
۱ ۲ ۳ ۴ ۵ ۶ ۷ |
Sub Jobdone (job As HttpJob) If job.Success = True Then Msgbox(job.GetString,"Success") Else ToastMessageShow("خطا در برقراری اتصال" , False) End If End Sub |
در خط ۲ یک شرط if گذاشتیم، و گفتیم اگر کار(job) با موفقیت تمام شد خط ۳ را اجرا کنه و اگر با موفقیت انجام نشد و خطا داد خط ۵ را اجرا کنه.
در خط ۳ یک Msgbox گذاشتیم و متن داخل MsgBox را برابر با رشته قرار دادیم(متنی که داخل MsgBox چاپ میشود همان متنی است که در فایل Register.php در قسمت if قرار دادیم که اگر ارتباط برقرار شد پیغام Done را چاپ کند).
- نوبت میرسه به نوشتن کدهای btn_register که عملیات انجام کار را با این دکمه انجام میدیم(پس از لمس روی دکمه عملیات ثبت نام و ارسال اطلاعات به سرور انجام داده می پذیرد):
۱ ۲ ۳ ۴ ۵ |
Sub btn_register_Click Dim send As String send = "username="&text_user.Text&"&password="&text_pass.Text ht.PostString("https://beporsam.ir/register.php",send) End Sub |
در خط ۲ یک متغیر به نام send از نوع رشته برای ارسال مقادیر تعریف کردیم.
در خط ۳ مقدار text_user را برابر username و مقدار text_password را برابر password قرار دادیم.
در خط ۴ هم چون مقادیر ارسالی از نوع متنی هست یک ht.PostString تعریف و آدرس فایل Register.php و متغیر send را بهش دادیم.
تمام شد، برنامه را ذخیره و خروجی را مشاهده کنید.
تمامی کدهایی که در برنامه استفاده کردیم به صورت زیر است:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ ۲۳ ۲۴ ۲۵ ۲۶ ۲۷ ۲۸ ۲۹ ۳۰ ۳۱ ۳۲ ۳۳ ۳۴ ۳۵ ۳۶ ۳۷ ۳۸ ۳۹ ۴۰ ۴۱ |
#Region Project Attributes #ApplicationLabel: B4A_register #VersionCode: 1 #VersionName: 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: unspecified #CanInstallToExternalStorage: False #End Region #Region Activity Attributes #FullScreen: False #IncludeTitle: True #End Region Sub Globals Private text_pass As EditText Private text_user As EditText Private btn_register As Button Dim ht As HttpJob End Sub Sub Activity_Create(FirstTime As Boolean) Activity.LoadLayout("lmain") ht.Initialize("register",Me) End Sub Sub Jobdone (job As HttpJob) If job.Success = True Then Msgbox(job.GetString,"Success") Else ToastMessageShow("خطا در برقراری اتصال" , False) End If End Sub Sub btn_register_Click Dim send As String send = "username="&text_user.Text&"&password="&text_pass.Text ht.PostString("https://beporsam.ir/register.php",send) End Sub |
در پایان سورس کد بیسیک فور اندروید + فایل Register.php + کتابخانه HttpUtils را می توانید دانلود کنید.
آموزش به پایان رسید، امیدوارم مفید واقع بوده باشه.
هرگونه سوالی یا مشکلی در رابطه با مطلب فوق داشتید؛ در سایت بپرسید، پاسخگوی سوالات شما هستیم، برای پرسیدن سوال کلیک کنید.
موفق باشید.
دیدگاه ( 10 )
در خط ۳ یک Msgbox گذاشتیم و متن داخل MsgBox را برابر با رشته قرار دادیم(متنی که داخل MsgBox چاپ میشود همان متنی است که در فایل Register.php در قسمت if قرار دادیم که اگر ارتباط برقرار شد پیغام Done را چاپ کند)
ino chap nemikone
bejash makhloti az code html va java va php chap mikone va field haye paygah dade khali mimone va chizi darj nemishe
moshkel kojas
سلام
میشه نحوه اضافه کردن هدر ها رو هم توضیح بدید ؟ مثلا آتوریزیشن ، کوکی ها ، یوزر ایجنت و …
ببخشید من می خواهم با همین روش که گفتید به وب سرور خودم برای خرید شارژ درخواست بدم.طبق مستندات وب سرور باید از طریق متدget بفرستم. و متد پست قبول نمی کنه.
میشه راهنمایی کنید چه جوری استقاده کنم و پارامتر های م مبلغ و نام اپراتور را در کجا باید قرار بدم.
سلام دوست عزیز
لطفا یک سوال داخل سایت بپرسید و مشکلتون رو در قالب سوال مطرح کنید
موفق باشید
سلام وقت بخیر
ممنونم بابت اموز عالی تون
من میخوام فایلمو داخل فایل منیجر اپلود کنم مجوز نمیده و مجبور میشم داخل پوشه htdocs اپلود کنم
برای اینکه بدونم درست آپلود شده چه آدرسی رو باید داخل مرورگر بزنم؟
سلام
آدرس دامنه ای که ثبت کردید را در مرورگر وارد کنید
سلام
به غیر از استفاده از کتابخانه http راه دیگه ای هست؟ تو اندروید ۹ از این کتابخانه نمیشه استفاده کرد
سلام
از کتابخانه Okhttp هم میتونید استفاده کنید
به نام خدا
سلام خداقوت
من طبق آموزش پیش رفتم فقط کد باز و بسته کردن برنامه رو هم اضافه کردم اما قبل از اون هم وقتی پیغام خوش آمد گویی میاد یه سری کدهای نامفهوم نشون میده
برای اینکه این کدها از بین بره چه کار باید بکنم؟
ممنون
اینطوری میشه:
<html><body><script type=”text/javascript”………
این کد چندین خطه
سلام
من ارور کدهارو رفع کردم برنامه اجرا میشه پیغام done هم ظاهر میشه اما در دیتابیس اطلاعاتی ثبت نمیشه
مشکل چیه؟
سلام به همه
من هم همین مشکل رو دارم. همه جور تست رو زدم. در مرورگر هیچ مشکلی نیست و اطلاعات راحت به بانک اضافه می شوند.
اما در اپی که با b4a ساختم در جواب قسمت getString همونطور که علی آقا گفتند یک صفحه مخلوط کدهای جاوا و اچ تی ام ال و … غیره میاد و هیچ رکوردی به بانک اطلاعاتی آنلاین افزوده نمیشه.
نه برنامه و نه دستورات php هیچ خطایی ندارند.
سلام
سورس کدی که قرار دادیم بدون خطا بوده است دوست عزیز
کدهای سمت سرور را بررسی کنید
سورس کدتون ارور میده که مربوط به استفاده ازmysql که در php منسوخ شده و mysqli جایگزینش شده البته برای استفاده از mysqli باید تغییراتی در کدها داد.
من تغییر دادم ونتیجه گرفتم
ممنون
age mishe source mysqli ro bezarin inja
سلام
من تمامی کارهایی که گفتید رو انجام دادم ولی نتیجه نگرفتم.(چند بار هم مو به مو انجام دادم)
لطفا کد ها را برسی کنید.
سلام دوست عزیز
کدهایی که در سایت قرار میگیره، سالم هستند
شما یک سوال جدید طرح کنید، و مشکلتون و سورسی که نوشتید رو پیوست کنید تا بررسی کنیم.
موفق باشید.
سلام
اقا من این کد ها رو نوشتم هم بی فور هم php
ادرس فایل پی اچ پی روی لوکال هاست که میدم و روی باتن میزنم یه ارر بزرگ میده که پر تگ و جاوا و این چیزاست ولی اطلاعات به فایل پی اچ پی ارسال میشه و در بانک ثبت میشه
اما زمانی که ادرس فایل php انلاین و میدم اصلا نمیتونه بهش متصل بشه و اطلاعات و post کنه . فایل php هم تست شده هست و با رفرش به بانک اطلاعات انلاین رکورد اضاف میکنه
چیکار کنم
سلام
مدیر عزیز اینجا شما اطلاعاتو دارید با متد POST میفرستید این روش برایه افرادی که php کارن خیلی اسونه ولی سواله من اینه که چجوری میتونیم داده رو فراخوانی کنید لطفا یه مثاله خیلی خیلی اسون بزنید من از سایت بیسیک ۴ اندروید یه پروژه در این باره دان کردم اصلا نفهیمدم با JSON چکار کرد….یه لیست ویو میاورد که توش رکورد ها بودن و روشون که کلیک میکردی یه اکتیویتی باز میشد و اطلاعات دیگه ی رکورد فراخوانی میشد…..
من فقط میخوام تویه یه اکتوتی text لیبلمو از دیتابیسه انلاینم فراخوانی کنم لطفا یه کده ساده بدید …
مرسی از زحماتتون