ساخت صفحه لاگین

سوال

به نام خدا

سلام دوستان
اول از همه بابت زحمات بی منتی که برای رفع اشکال کارآموزان و برنامه‌نویسان می کشید و وقت میذارید سپاسگذاری میکنم و امیدوارم خیر و برکتشو توی زندگیتون ببینید.
من مدتیه دارم با آموزش سایتتون برای ایجاد صفحه لاگین کار میکنم که در هفت بخش منتشر کردید منتها هر کاری میکنم اجرا نمیشه
برای ایجاد صفحه لاگین (ثبت نام نمی خوام چون خودم یوز و پس میدم به کاربر) هاست از میهن هاست خریدم و با کدهای شما خیلی تلاش کردم صفحمو درست کنم اما نشد
ممنون میشم که یه صفحه لاگین ساده که فقط کاربر یوز و پس داده شده بهش رو بزنه و وارد بشه بذارید و البته فرض کنید برای نوآموزان برنامه نویسی توضیح می دید نه کسایی که پیش زمینه دارن، مثلا اینکه فایل php‌رو کجای هاست بذاریم، یا گزینه ها چطوری جاگذاری بشن که ارتباط قطعا برقرار بشه و وقتی برقرار شد اکتیویتی جدید رو باز کنه نه اینکه پیغام بده
البته باعث زحمت مجدده اما باز هر طور صلاح دونستید ممنون میشم کمک کنید از بس روی این صفحه کار کردم و هی نتیجه نگرفتم دیگه خسته شدم

ممنونم

حل شد 0
, 2019-05-05T12:08:24+03:30 8 پاسخ کاربر 1

پاسخ ها ( 8 )

    0
    2019-05-06T00:14:21+03:30

    سلام.

    دوست عزیز، الان دقیقا تا کجای کار پیش رفتی و چه چیزهایی رو نوشتی؟

    0
    2019-05-06T01:28:34+03:30

    سلام عزیز جان

    شب خوش
    جسارتا این کدها مربوط به صفحه main و php هاستم هستن

    Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("Layout1")
    ht.Initialize("login",Me)
    End Sub
     
    Sub Button1_Click
    Dim strUsername As String = EditText1.Text.Trim
    If strUsername = "" Then
    Msgbox("نام کابری را وارد کنید", "خطا")
    Return
    End If
    Dim strPassword As String = EditText2.Text.Trim
    If strPassword = "" Then
    Msgbox("رمز عبور را وارد کنید", "خطا")
    Return
    End If
    Dim job1 As HttpJob
    job1.Initialize("Login", Me)
    job1.Download2("hamedafrough.ir/login.php", _
    Array As String("username",EditText1,"password",EditText2))
    ProgressDialogShow("در حال اتصال به سرور")
    End Sub
    Sub JobDone (Job As HttpJob)
    ProgressDialogHide
    Log("JobName = " & Job.JobName & ", Success = " & Job.Success)
    If Job.Success = True Then
    StartActivity("layout2")
    Dim strReturn As String
    Log(Job.GetString)
    strReturn = Job.GetString
    Label3.Text = strReturn
    Else
    Log("خطا: " & Job.ErrorMessage)
    ToastMessageShow("خطا: " & Job.ErrorMessage, True)
    End If
    Job.Release
    End Sub
    
    <?php
    /*
    * www.beporsam.ir
    * beporsam@gmail.com
    * Social Id: @beporsam
    */
    $host = 'localhost';
    $userdb = 'hamedafr';
    $passdb = '';
    $dbname = 'hamedafr_misaq';
    $conn =mysqli_connect($host,$userdb,$passdb,$dbname);
    mysqli_set_charset($conn,"utf8");
    //ارتباط با دیتابیس
    if (mysqli_connect_errno()){
    echo 'خطا در برقراری ارتباط با دیتابس: '.mysqli_connect_error();
    }
    // گرفتن نام کاربری و رمز عبور
    $username = $_GET['username'];
    $password = $_GET['password'];
    // کوئری اجرای دستورات
    $sql = "select * from tbl_user where username = '$username' and password = '$password'";
    $result = mysqli_query($conn,$sql);
    $row = mysqli_fetch_array($result);
    $count = mysqli_num_rows($result);
    if ($count == 0) {
    echo 'نام کاربری یا رمز عبور اشتباه است';
    }
    else {
    echo $row['username'].'خوش اومدی';
    }
     
    
    1
    2019-05-08T11:07:52+03:30

    سلام حامد جان

    انشاءالله که دیگر کاربران هم مثل شما رضایت کافی از سایت داشته باشند 🙂

    بریم سر اصل ماجرا:

    ما در کدهای سمت سرور اومدیم، بررسی کردیم که اگه اطلاعات ارسالی(نام کاربری و رمز عبور) صحیح بود، بیاد و پیغام خوش اومدی و اگه اشتباه بود، پیغام نام کاربری و رمز عبور رو نشون بده، کدهاش هم اینه:

    if ($count == 0) {
        echo 'نام کاربری یا رمز عبور اشتباه است';
    }
    else {
        echo $row['username'].'خوش اومدی';
    
    }

    اینکه تا اینجا، پس کدهای سمت سرور که نوشتی، صحیح و نیاز به تغییر نداره

    ولی در سمت کلاینت(B4A) باید یه تغییری داده بشه، کد زیر رو نوشتیم که اطلاعات رو بره ارسال کنه و بنا به درست و غلط بودن اطلاعات پیام هایی که در سمت سرور نوشتیم رو نشون بده(کدهای بالا):

    Sub JobDone (Job As HttpJob)
    	ProgressDialogHide
    	Log("JobName = " & Job.JobName & ", Success = " & Job.Success)
    	If Job.Success = True Then
    		Dim strReturn As String 
    		Log(Job.GetString)
    		strReturn = Job.GetString 
    		Label3.Text = strReturn
    	Else
    		Log("خطا: " & Job.ErrorMessage)
    		ToastMessageShow("خطا: " & Job.ErrorMessage, True)
    	End If
    
    	Job.Release
    End Sub

    کد زیر رو با کد بالا جایگزین کن:

    Sub JobDone (Job As HttpJob)
    	ProgressDialogHide
    	Log("JobName = " & Job.JobName & ", Success = " & Job.Success)
    	If Job.GetString.Contains("خوش اومدی") Then
    		Activity.Finish
    		StartActivity("Test")
    	Else
    		Log("خطا: " & Job.ErrorMessage)
    		ToastMessageShow("خطا: " & Job.ErrorMessage, True)
    	End If
    	Job.Release
    End Sub

    در قطعه کد بالا از خط 4 تا 7، اومدیم یه شرط گذاشتیم که اگه پیغامی که از سمت سرور دریافت میشه برابر “خوش اومدی” بود، اکتیویتی فعلی رو ببنده و اکتویتی Test رو اجرا کنه، اگه هم نبود که بنویسه ” نام کاربری یا رمز عبور اشتباه است”.

    حالا شما در قطعه کد بالا، بجای عبارت “خوش اومدی”، اون پیغامی که در سمت سرور مشخص کردی که اگه اطلاعات صحیح بود، چاپ رو کنه بنویس.

    موفق باشید.

     

    بهترین پاسخ
    0
    2019-05-10T01:39:57+03:30

    به نام خدا
    دوست عزیز، سلطان قلبها

    از محبت و وقتی که میذارید ممنونم
    مجددا تشکر میکنم

    جسارتا اوامر شما انجام شد البته من جای اکتیویتی تست اسم اکتیتیوی خودم رو نوشتم اما به محض وارد کردن یوز و پسی که در دیتابیس تعیین کردم برنامه خارج میشه و پیغام میده کهبرنامتون بسته شد و اگر میخواید دوباره شروعش کنید و در خود بیسیک هم یه سری ارر میده که عکسشونو پیوست کردم خدمتتون
    ممنون میشم فرصت کردید ملاحظه کنید و ایرادشو بگید اصلاح کنم

    متشکرم


    فایل پیوست
      1
      2019-05-11T03:59:29+03:30

      سلام حامد جان

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

    0
    2019-05-11T12:28:45+03:30

    به نام خدا
    سلام داداش
    خدا خیرتون بده
    ممنونم


    فایل پیوست
      1
      2019-05-11T18:02:06+03:30

      حامد جان، اون کدهایی که من گذاشتم رو جایگزین نکردی عزیز

      این کدهای شما هست:

      Sub JobDone (Job As HttpJob)
      	ProgressDialogHide
      	Log("JobName = " & Job.JobName & ", Success = " & Job.Success)
      	If Job.Success = True Then
      		StartActivity("layout2")
      		Dim strReturn As String
      		Log(Job.GetString)
      		strReturn = Job.GetString
      		Label3.Text = strReturn
      	Else
      		Log("خطا: " & Job.ErrorMessage)
      		ToastMessageShow("خطا: " & Job.ErrorMessage, True)
      	End If
      	Job.Release
      End Sub

      با کد زیر جایگزین کن:

      Sub JobDone (Job As HttpJob)
      	ProgressDialogHide
      	Log("JobName = " & Job.JobName & ", Success = " & Job.Success)
      	If Job.GetString.Contains("خوش اومدی") Then
      		Activity.Finish
      		StartActivity("layout2")
      	Else
      		Log("خطا: " & Job.ErrorMessage)
      		ToastMessageShow("خطا: " & Job.ErrorMessage, True)
      	End If
      	Job.Release
      End Sub

      موفق باشی

    0
    2019-05-11T21:04:04+03:30

    سلام مجدد به شما دوست بزرگوار
    متاسفانه باز هم کار نکرد و از برنامه بیرون پرید
    جسارتا سورس رو با تغییراتی که فرمودید گذاشتم
    هر موقع وقت کردید ممنون میشم ملاحظه بفرمایید
    خیلی ممنونم


    فایل پیوست
      1
      2019-05-13T04:47:09+03:30
      این پاسخ ویرایش شد.

      آقای حامد

      آدرس پی اچ پی رو اشتباه نوشتی، یا آی پی هست یا هاست آنلاین. آی پی سرور شخصی که دات آی ار نداره

      دوم اینکه شما لایوت رو با اکتیویتی اشتباه گرفتی. من فایل پیوست شما رو دیدم

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

        0
        2019-05-14T00:20:14+03:30
        این پاسخ ویرایش شد.

        سلام
        از توضیحتون ممنونم
        کاش دقیق می گفتید کجا رو اشتباه نوشتم
        پی اچ پی مطلقا بلد نیستم
        اما در بحث بیسیک به نظرم به جای لایوت، اکتیویتی باز بشه فرقی نداشته باشه (البته اون layout2‌اسم اکتیویتی هم هست یعنی با لایه دقیقا هم نامن)
        اگر اطلاعات بیشتری دارید یا اشتباه میگم ممنون میشم بهم بگید

    1
    2019-05-14T08:20:19+03:30

    سلام

    از این سورس استفاده کنید، برای دانلود کلیک کنید.

    در کنار سورس فایل login.php هم قرار دارد که در هاست آپلود کنید، و آدرس فایل رو در خط 77 بنویسید.

    این سورس پس از صحیح بودن نام کاربری و رمز عبور به اکتویتی Test میره و اگه اطلاعات اشتباه بود، پیام “نام کاربری یا رمز عبور اشتباه است” را به کاربر نشون میده.

    این سورس دقیقا همون سورس آموزش صفحه لاگین هست، که کدهایی که در پاسخ به این سوال براتون نوشتم رو در این سورس جایگذاری کردم.

    موفق باشید.

    0
    2019-05-14T13:34:54+03:30

    سلام اقای آخوندی

    دمت گرم داداش
    خیلی برام وقت گذاشتی
    یه دنیا ممنونتم

    انشالله برم خونه حتما سورسی که دادید رو امتحان میکنم

ارسال یک پاسخ