1
私はPHPのmysqlを使ってサーバーにアンドロイドとデータベースを持っています。 signup
ページで、データが登録されず、アプリケーションが停止しました。サインアップページからログインページに戻ります。私はlogcat
から分からなかった。アプリやPHPで問題がある場合。私を助けてください。 Logcat pictureAndroid eclipse SignUpページアプリがエラーを停止しました
Kayit.java:
package com.ahmety.fmsocialmedia;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class Kayit extends Activity {
Button kayit;
EditText nickname_edit,mail_edit,sifre_edit,sifre_tekrar_edit;
String nickname,mail,sifre,sifre_tekrar,hata_mesaji="";
boolean hata = false;
PostClass post = new PostClass();
String URL_POST= "http://www.ahmetyilmazz.info/kayit.php";
JSONObject cevap=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_kayit);
kayit = (Button)findViewById(R.id.buttonRegister);
nickname_edit = (EditText)findViewById(R.id.editUsernameReg);
mail_edit = (EditText)findViewById(R.id.editEmailReg);
sifre_edit = (EditText)findViewById(R.id.editPasswordReg);
sifre_tekrar_edit = (EditText)findViewById(R.id.editPasswordConfirmReg);
kayit.setOnClickListener(new View.OnClickListener() {//Kayıt ol butonuna tıklanınca
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//Edittextlerden bilgileri aldık
nickname = nickname_edit.getText().toString();
mail = mail_edit.getText().toString();
sifre = sifre_edit.getText().toString();
sifre_tekrar = sifre_tekrar_edit.getText().toString();
int sifre_karakter = sifre.length();
if(nickname.matches("") || mail.matches("") || sifre.matches("") || sifre_tekrar.matches("")){// boş veri var mı kontrolü
hata = true;
hata_mesaji = "Please be sure fill all area!!!";
}else if(!sifre.matches(sifre_tekrar)){//şifreler uyuşuyor mu kontrolü
hata = true;
hata_mesaji = "Password doesn't match!!!";
}else if(sifre_karakter<5){//şifre karakter sayısı kontrolü
hata_mesaji += "Password can not be smaller than 5 characater!!!";
hata=true;
}else if(!Fonksiyonlar.isEmailValid(mail)){//Mail format kontrol
hata_mesaji += "Email format is unvalid!!!";
hata=true;
}
if(hata){//hata varsa hatayı alertDialog ile gösteriyoruz
AlertDialog alertDialog = new AlertDialog.Builder(Kayit.this).create();
alertDialog.setTitle("Error");
alertDialog.setMessage(hata_mesaji);
alertDialog.setCancelable(false);
alertDialog.setButton(RESULT_OK,"OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
sifre_edit.setText("");
sifre_tekrar_edit.setText("");
hata_mesaji = "";
hata = false;
}
});
alertDialog.show();
}else{//hata yoksa
new KayitOl().execute();//KayıtOl asynctask classı cagırıyoruz
}
}
});
}
class KayitOl extends AsyncTask<Void, Void, Void> {
private String sonucmesaji,sonuc,tarih;
ProgressDialog pDialog;
protected void onPreExecute() {
// progress dialog
pDialog = new ProgressDialog(Kayit.this);
pDialog.setMessage("Registering is progressing...");
pDialog.setIndeterminate(true);
pDialog.setCancelable(false);
pDialog.show();
}
protected Void doInBackground(Void... unused) {
sifre = Fonksiyonlar.sha1(sifre);//şifreyi sha1 ile şifreledik
//Parametreleri ekliyoruz
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("nickname", nickname));
params.add(new BasicNameValuePair("mail", mail));
params.add(new BasicNameValuePair("sifre",sifre));
//Tarih bilgisini almak için
Calendar c = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat("dd-MMM-yyyy");
tarih = format.format(c.getTime());
String json = post.httpPost(URL_POST,"POST",params,20000);
Log.d("Gelen Json",""+json);//Gelen veriyi logluyoruz.Log Catten kontrol edebiliriz
try {
cevap = new JSONObject(json);
sonucmesaji = cevap.getString("sonucmesaji");
if (cevap.getString("sonuc") != null) {
sonuc = cevap.getString("sonuc");
if(Integer.parseInt(sonuc) == 1){ //Eğer kayıt başarılı ise
//Sqlite database baglanıp gerekli verileri kaydediyoruz.
Database db = new Database(getApplicationContext());
db.resetTables();
db.kullaniciEkle(nickname, mail, sifre, tarih); //kullanıcıyı ekliyoruz.Ve Main activitye yönlendiriyoruz.
//Sonuc başarılı ise main activitye yönlendirdk.
Intent anasayfa = new Intent(getApplicationContext(),MainActivity.class);
startActivity(anasayfa);
finish();
}
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
// Sonuç başarılı ise bu kod çalışmıcak çünkü Main activitye yönlenmiş durumda
protected void onPostExecute(Void unused) {
// closing progress dialog
pDialog.dismiss();
// updating UI from Background Thread
runOnUiThread(new Runnable() {
public void run() {
if(Integer.parseInt(sonuc) == 0){// Sonuç başarılı değil ise
AlertDialog alertDialog = new AlertDialog.Builder(Kayit.this).create();
alertDialog.setTitle("Hata");
alertDialog.setMessage(sonucmesaji);//Sonuc mesajıyla bilgilendiriyoruz.
alertDialog.setCancelable(false);
alertDialog.setButton(RESULT_OK,"OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
sifre_edit.setText("");
sifre_tekrar_edit.setText("");
}
});
alertDialog.show();
}
}
});
}
}
}
感謝: クラッシュを避けるために、同様の条件の何かを置きます。 sonucは登録を得た結果です。私はPHP mysqlの問題だと思う。私はあなたのコードを使用して欠陥が削除されましたが、登録されず、ログインしませんでした。あなたのお手伝いをありがとう。私は理解していると思う... –
私はそれが助けてうれしいです。 :) upvoteを与えるか、答えを受け入れることができます –