ارسال یوزرنیم و پسورد کاربر به سرور و دریافت تاریخ عضویت و نمایش درTextView
سلام دوستان
داخل اکتیویتی اصلی یه بخش دارم به اسم showprofile که وقتی انتخاب توسط کاربر انتخاب میشه، میاد یوزنیم و پسورد که داخل شیردپرفرینس ذخیره هست رو می فرسته سمت سرور و قراره تاریخ عضویت کاربر که داخل یک تیبل از دیتابیس سمت سرور ذخیره هست رو بگیره و داخل یه تکست ویو نمایش بده
این ها کدهای php سمت سرور هستش:
function get(){
$connection = connectToDatabase();
$Username = $_REQUEST['Username'];
$Pass = $_REQUEST['Pass'];
if($Username!="" && $Pass!=""){
$result = mysqli_query($connection,"select Date from users where Username='$Username' and Pass='$Pass'");
$row = mysqli_fetch_array($result)
$record = array();
$record['Date'] = $row['Date'];
}
echo json_encode($record);
}else {
print "null";
}
mysqli_close($connection);}
این کدهای php رو نوشتم که بعد از دریافت یوزرنیم و پسورد از سمت اندروید میاد و خونه متناظر اطلاعات رو داخل تیبل یوزرز پیدا می کند و توی خروجی ارسال می کنه.
اگه کدهام اشتباه نوشته شده لطفا راهنمایی کنید اصلاحش کنم.
مورد دیگه ای که کدهای سمت اندروید هست که نتونستم کاملش کنم و کمک میخوام که کاملش کنم
من تا اینجا نوشتم :
کد HTML:
private void ShowProfile(){
profile = new MaterialDialog.Builder(MainActivity.this)
.customView(R.layout.alert_aprofile,false)
.show();
AsyncHttpPost post = new AsyncHttpPost(
"http://(myurl)profile.php"
);
post.setTimeout(5000);
MultipartFormDataBody body = new MultipartFormDataBody();
body.addStringPart("Username",sp.getString("Username", null));
body.addStringPart("Pass",sp.getString("Pass", null));
post.setBody(body);
});
تا اینجا فقط میاد اطلاعات username و pass رو از کاربر می گیره و میفرسته به سمت سرور ولی برای نوشتن ادامه ش کمک میخوام...
لطفا راهنماییم کنید دوستان
نقل قول: ارسال یوزرنیم و پسورد کاربر به سرور و دریافت تاریخ عضویت و نمایش درTextView
برای بهتر شدن کارتون پیشنهاد میدم حتما از کتابخونه های اماده ایی مثل retrofit استفاده کنید که در کار با API امکانات خیلی خوبی میدن.
برای کد خودتون هم ادامش تنها لازمه جواب سرور رو به json تبدیل کنید و ازش استفاده کنید.
نقل قول: ارسال یوزرنیم و پسورد کاربر به سرور و دریافت تاریخ عضویت و نمایش درTextView
تشکر از پاسختون
نقل قول:
برای کد خودتون هم ادامش تنها لازمه جواب سرور رو به json تبدیل کنید و ازش استفاده کنید.
اگه ممکنه تو نوشتن همین بخش از برنامه راهنماییم کنید، همین که خروجی سرور رو دریافت کنه و مقدار تکست ویو رو ازون بگیره.
و اگه امکانش هست همین کار، یعنی ارسال یوزنیم و پس به سرور و دریافت خروجی سرور و نمایشش در textview رو با کتابخونه retrofit بنویسید
پیشاپیش ممنونم
نقل قول: ارسال یوزرنیم و پسورد کاربر به سرور و دریافت تاریخ عضویت و نمایش درTextView
مثال های استفاده از retrofit زیاده و تنها لازمه یه سرچ بزنید ، خودتون یه تلاشی بکنید و نتیجه رو بگید دوستان هم کمک میکنند
نقل قول: ارسال یوزرنیم و پسورد کاربر به سرور و دریافت تاریخ عضویت و نمایش درTextView
من با این کتابخونه آشنایی ندارم ولی برای ادامه کد خودم اینو نوشتم:
کد HTML:
private void ShowProfile(){
profile = new MaterialDialog.Builder(MainActivity.this)
.customView(R.layout.alert_aprofile,false)
.show();
AsyncHttpPost post = new AsyncHttpPost(
"http://*******/profile.php"
);
post.setTimeout(5000);
MultipartFormDataBody body = new MultipartFormDataBody();
body.addStringPart("Username",sp.getString("Username", null));
body.addStringPart("Pass",sp.getString("Pass", null));
post.setBody(body);
AsyncHttpClient.getDefaultInstance().executeString(post, new AsyncHttpClient.StringCallback() {
@Override
public void onCompleted(final Exception e, AsyncHttpResponse source, final String result) {
if(e != null){
}
if(!result.equals("")){
SharedPreferences sp = getApplicationContext().getSharedPreferences("User",0);
SharedPreferences.Editor edit = sp.edit();
edit.putString("Date",result);
profile_time.setText(sp.getString("Date",null));
}
}
});
ولی زمانی که پروفایل رو تاچ می کنم خارج میشه از نرم افزار این هم لاگ دیباگر:
نقل قول:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequ ence)' on a null object reference
at com.birjandandroid.bazaarpal.MainActivity$5.onComp leted(MainActivity.java:303)
at com.birjandandroid.bazaarpal.MainActivity$5.onComp leted(MainActivity.java:290)
at com.koushikdutta.async.http.AsyncHttpClient.invoke WithAffinity(AsyncHttpClient.java:527)
at com.koushikdutta.async.http.AsyncHttpClient.access $800(AsyncHttpClient.java:51)
at com.koushikdutta.async.http.AsyncHttpClient$7.run( AsyncHttpClient.java:534)
at com.koushikdutta.async.AsyncServer.lockAndRunQueue (AsyncServer.java:740)
at com.koushikdutta.async.AsyncServer.runLoop(AsyncSe rver.java:758)
at com.koushikdutta.async.AsyncServer.run(AsyncServer .java:658)
at com.koushikdutta.async.AsyncServer.access$800(Asyn cServer.java:44)
at com.koushikdutta.async.AsyncServer$14.run(AsyncSer ver.java:600)
E/AndroidRuntime: FATAL EXCEPTION: AsyncServer
Process: com.birjandandroid.bazaarpal, PID: 27805
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequ ence)' on a null object reference
at com.birjandandroid.bazaarpal.MainActivity$5.onComp leted(MainActivity.java:303)
at com.birjandandroid.bazaarpal.MainActivity$5.onComp leted(MainActivity.java:290)
at com.koushikdutta.async.http.AsyncHttpClient.invoke WithAffinity(AsyncHttpClient.java:527)
at com.koushikdutta.async.http.AsyncHttpClient.access $800(AsyncHttpClient.java:51)
at com.koushikdutta.async.http.AsyncHttpClient$7.run( AsyncHttpClient.java:534)
at com.koushikdutta.async.AsyncServer.lockAndRunQueue (AsyncServer.java:740)
at com.koushikdutta.async.AsyncServer.runLoop(AsyncSe rver.java:758)
at com.koushikdutta.async.AsyncServer.run(AsyncServer .java:658)
at com.koushikdutta.async.AsyncServer.access$800(Asyn cServer.java:44)
at com.koushikdutta.async.AsyncServer$14.run(AsyncSer ver.java:600)
نقل قول: ارسال یوزرنیم و پسورد کاربر به سرور و دریافت تاریخ عضویت و نمایش درTextView
ویرایش :
من این مجموعه کد رو نوشتم :
نقل قول: ارسال یوزرنیم و پسورد کاربر به سرور و دریافت تاریخ عضویت و نمایش درTextView
طبق خطایی که گذاشتید profile_time تعریف نشده هست.