2016-07-15 42 views
1

我有android和數據庫服務器與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(); 
          } 
         } 


       }); 
     } 
    } 


} 

回答

0

你logcat的圖像顯示在你onPostExecute()方法NumberFormatException

if(Integer.parseInt(sonuc) == 0). 

所以,我想你的'sonuc'字符串是null。請檢查一次您獲得'sonuc'的價值。 爲避免死機,請將條件如下:

if(sonuc != null){ 
    //your code 
} 
+0

感謝您的幫助。 sonuc是獲得註冊的結果。我認爲它的問題在PHP的MySQL。我用你的代碼和故障刪除,但它沒有註冊,它不登錄。感謝您的幫助。我想我明白... –

+0

我很高興它幫助。 :)你可以放棄或接受答案 –

相關問題