ورود

View Full Version : مشکل با ریجسترشدن از طریق اپ به سرور



shabgardetanha
جمعه 25 تیر 1395, 20:16 عصر
سلام
من میخوام برنامه لاگین و ریجستر از طریق اپ رو به سایت و دریافت اطلاعات انجام بدم برا ریجستر طبق اموزش این سایت
http://www.android-examples.com/android-create-user-registration-form-with-php-mysql/

پیش رفتم اما هنگام اجرا خطایی ندارم و هیچ درجی در بانک انجام نمیشه
این کدهامه
141483
ممنون میشم کمکم کنید

vahid-p
شنبه 26 تیر 1395, 14:48 عصر
من از HttpClient استفاده نمیکنم و در عوض HttpURLConnection استفاده میکنم که به راحتی جواب داده تا به حال. تو تاپیک قبلیتون هم همینکار رو کردم. شما هم از همون استفاده کنید ببینید جواب میگیرید؟

البته تو مثال شما از POST استفاده نکرده بودم و شاید برای POST کردن براتون جای سوال باشه، که در کدی که در پست 37 تاپیک "فراخوانی تابع؟؟ (http://barnamenevis.org/showthread.php?526071)" آپلود کردم در کلاس SendData ببینید چطور با HttpURLConnection اطلاعات رو با روش POST ارسال کردم
وقتی اطلاعات رو ارسال کردید، و جوابش رو گرفتید، بقیش میشه سمت سرور و php که ربطی به جاوا و اندروید نداره.

راستی از تعریف کلاس اون هم به این صورت داخل متد استفاده نکنید (منظورم کلاس SendPostReqAsyncTask)، خیلی کد رو ناخوانا میکنه!

موفق باشید.

shabgardetanha
شنبه 26 تیر 1395, 19:22 عصر
سلام
من تاپیکی که شما فرمودید رو دیدم و پروژه ارسالی تون رو انجام دادم و جواب گرفتم:تشویق:
اما اون که بانک نداره فقط می گیره و نمایش میده داده ها رو:متفکر:
خواهش می کم بگید با روشی که شما میگید چطور در بانک درجش کنم:گریه:
هر چی با هاش ور رفتم نشد:عصبانی++:
کد php که فرستادم درسته؟
ممنون

shabgardetanha
شنبه 26 تیر 1395, 19:59 عصر
این کدها رو داخل کلاس senddata شما نوشتم برا امتحان اما باز درج انجام نداد

package com.example.noti;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;

import android.app.Activity;
import android.app.Dialog;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class SendData extends Dialog {
//Constants
private final String webServiceAddress="http://10.0.2.2/Android/nn.php";

//Fields
private Activity activity;
private Button submitBtn;
private Button closeBtn;
private EditText fName;
private EditText lName;
private TextView resultBox;

public SendData(Activity activity) {
super(activity);
this.activity = activity;
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_send_data);
submitBtn = (Button) findViewById(R.id.submitBtn);
closeBtn = (Button) findViewById(R.id.closeBtn);

fName = (EditText) findViewById(R.id.fNameInput);
lName = (EditText) findViewById(R.id.lNameInput);
resultBox = (TextView) findViewById(R.id.resultBox);

submitBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new DataConnection().execute(webServiceAddress,fName.g etText().toString(),lName.getText().toString());
Toast.makeText(getContext(),"ok",Toast.LENGTH_LONG);

}
});
closeBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SendData.this.dismiss();
}
});
}

private class DataConnection extends AsyncTask<String,String,String>{

@Override
protected String doInBackground(String... strings) {
if (strings == null || strings.length < 1) {
return "";
}
HttpURLConnection connection = null;
StringBuilder stringBuilder = new StringBuilder("");
try {
URL url = new URL(strings[0]);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("User-Agent", "Mozilla/5.0");
//POST method
connection.setRequestMethod("POST");


List<NameValuePair> params = new ArrayList<NameValuePair>(3);
params.add(new BasicNameValuePair("nam", fName.getText().toString()));
params.add(new BasicNameValuePair("famil", lName.getText().toString()));

OutputStream os = connection.getOutputStream();
BufferedWriter br = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
br.write(getQuery(params));
br.flush();
br.close();
os.close();
//Everything works just fine with these lines below, but without them, it doesn't work... Why is that?
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
Log.i("ilog", inputLine);


}

} catch (MalformedURLException e) {
Log.e("Tag","Address is not valid: "+strings[0]);
} catch (IOException e) {
Log.e("Tag","Error in Connection to: "+strings[0]);
} finally {
if (connection != null) {
connection.disconnect();
}
return stringBuilder.toString();
}
}

@Override
protected void onPostExecute(String s) {
if(s!=null) {
resultBox.setText(s);
Toast.makeText(getContext(),"ok",Toast.LENGTH_LONG);
}
}
}
private String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException {
StringBuilder result = new StringBuilder();
boolean first = true;

for (NameValuePair pair : params) {
if (first) {
first = false;
} else result.append("&");

result.append(URLEncoder.encode(pair.getName(), "UTF-8"));
result.append("=");
result.append(URLEncoder.encode(pair.getValue(), "UTF-8"));
}

return result.toString();
}
}

خواهش می کنم بگید چکار کنم؟؟؟؟؟:اشتباه:

vahid-p
شنبه 26 تیر 1395, 20:05 عصر
اما اون که بانک نداره فقط می گیره و نمایش میده داده ها رو:متفکر:
این اطلاعات بازگشتی از فایل php هست که نشون داده میشه.

شما همون اطلاعات رو (که تو کد php هم هست) رو باید در بانک اطلاعاتیتون ذخیره کنید. $_POST['fname'] و $_POST['lname'] اطلاعاتی هستن که فایل php میگیره.
درج اون اطلاعات در بانک اطلاعاتی ارتباطی با جاوا نداره و در انجمن php باید مطرح کنید(به نظر من که کد php تون درست بود، به هر حال همونجا مطرح کنید تا متخصصینش نظر بدن).

موفق باشید.

shabgardetanha
یک شنبه 27 تیر 1395, 08:10 صبح
ممنون
خوب الان این کدی که گذاشتم به نظرتون مشکل داره؟ خوب کد php که درسته پس مشکل کجاست که درج نمیکنه؟

shabgardetanha
یک شنبه 27 تیر 1395, 18:48 عصر
دوستان خواهشا یکی کمک کنه..:گریه::گریه::عصبانی++: