Soru & Cevap

Php json parse hatalari

23.12.2017 - 09:04

Merhabalar arkadaslar Android studio ile php json parse yaparak login islemi gerceklestiriyorum. 1- internet baglantisi olmadiginda baglan butonuna basinca program durduruldu hatasi veriyor . 2- butona basmadan once internet varsa baglaniyor diye progress aciliyo bu arada intetnet koparsa yine durduruldu hatasi aliyorum. 3- hostingdeki php dosyasini silip denedim bu sefer baglaniyor progress i aciliyo bir muddet kalip kapaniyo uygulamada bir degisiklik olmuyo Bu 3 sorunun cozumu icin ne yapmam gerekir mantigini veya varsa ornek bir kodunu paylasirsaniz sevinirim veya bir kucuk makale paylasirsaniz bama cok yardimci olursunuz. Simdiden tesekkirler

188 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user Hamza3444
Hamza3444
31.12.2017 - 11:02

Hemen kodu paylaşıyorum hocam. İlginiz için şimdiden teşekkürler

 



public class login extends Fragment implements View.OnClickListener {
    EditText mail_input,sifre_input;
    String mail,sifre,sonuc,tarih,sonucmesaji;
    String URL_POST= "http://www.oradaneleroluyor.xyz/login.php";
    String hata_mesaji="";
    ProgressDialog pDialog;
    Boolean hata = false;
    JSONObject cevap=null;


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        View view = inflater.inflate(R.layout.loginn, container,false);

        Button giris = (Button) view.findViewById(R.id.button2);
       
        mail_input = (EditText) view.findViewById(editText);
        sifre_input = (EditText) view.findViewById(R.id.editText2);

       Calendar c = Calendar.getInstance();
        SimpleDateFormat format = new SimpleDateFormat("dd-MMM-yyyy");
        tarih = format.format(c.getTime());
        




        giris.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                buttonClicked(v);

            }
        });
 


        return view;
    }

   
        public void buttonClicked (View view) {
        mail = mail_input.getText().toString();//edittext değerini alıyoruz
        sifre = sifre_input.getText().toString();//edittext değerini alıyoruz

        if (Fonksiyonlar.giriskontrol(getActivity())) {
            hata_mesaji += "Daha önce giriş yapılmış\n";
            hata=true;

        }

            if(mail_input.getText().toString().trim().equals("") ) {
                hata_mesaji += "kullanıcı adı boş bırakılamaz\n";
                hata=true;

            }

        int sifre_karakter = sifre.length();
        if(sifre_karakter<6){
            hata_mesaji += "Şifre 6 Karakterden Az Olamaz\n";
            hata=true;
        }

        if(hata){//hata varsa AlertDialog ile kullanıcıyı uyarıyoruz.
            AlertDialog alertDialog = new AlertDialog.Builder(getActivity()).create();
            alertDialog.setTitle("Hata");
            alertDialog.setMessage(hata_mesaji);
            alertDialog.setCancelable(false);
            alertDialog.setButton(RESULT_OK,"Tamam", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    sifre_input.setText("");
                    hata_mesaji = "";
                    hata = false;
                }
            });
            alertDialog.show();
        }else{//Hata yoksa Asynctask classı çağırıyoruz.İşlemlere orda devam ediyoruz
            new girisKontrol().execute(mail,sifre);
        }





    }

    @Override
    public void onClick(View view) {

    }


    @SuppressLint("StaticFieldLeak")
    private class girisKontrol extends AsyncTask<String, String ,String> {
        String result;
        protected void onPreExecute() {
            //  progress dialog

            pDialog = new ProgressDialog(getActivity());
            pDialog.setMessage("Giriş Yapılıyor...");
            pDialog.setIndeterminate(true);
            pDialog.setCancelable(false);
            pDialog.show();
        }


        @Override
        protected String doInBackground(String... strings) {
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("mail", mail));
            params.add(new BasicNameValuePair("sifre", sifre));
            try {
             result= postClass.Post(URL_POST,params);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return result;
        }

        @Override
        protected void onPostExecute(String s) {
        pDialog.dismiss();


            try {

                cevap = new JSONObject(s);
                sonucmesaji = cevap.getString("sonucmesaji");

                if (cevap.getString("sonuc") != null) {
                    sonuc = cevap.getString("sonuc");
                    if(Integer.parseInt(sonuc) == 1){ //Eğer giriş başarılı ise
                        Database db = new Database(getActivity());
                        db.resetTables();
                        db.kullaniciEkle(mail, sifre, tarih);
                        getFragmentManager().popBackStack("bayraklogin",FragmentManager.POP_BACK_STACK_INCLUSIVE);
                        FragmentManager fragmentManager = getFragmentManager();
                        FragmentTransaction ft = fragmentManager.beginTransaction();
                        FragmentAndroid fragmentAndroid = new FragmentAndroid();
                        ft.replace(R.id.content_frame, fragmentAndroid,"banaozelbayrak");
                        ft.addToBackStack("banaozelbayrak");
                        ft.commit();




                    }
                    if(Integer.parseInt(sonuc) == 0){// Sonuç başarılı değil ise
                        AlertDialog alertDialog = new AlertDialog.Builder(getActivity()).create();
                        alertDialog.setTitle("Hata");
                        alertDialog.setMessage(sonucmesaji);//Sonuc mesajıyla bilgilendiriyoruz.
                        alertDialog.setCancelable(false);
                        alertDialog.setButton(RESULT_OK,"Tamam", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int which) {
                                sifre_input.setText("");
                            }
                        });
                        alertDialog.show();
                    }
                }

            } catch (JSONException e) {
                e.printStackTrace();
            }

        }
    }
}

 

Hamza HAMZA
31.12.2017 - 11:03
kod bloğuna koymuştum ama neden böyle düzyazı yaptı anlamadım
picture-16490-1553546609.jpg
bektasesref
28.12.2017 - 01:16
Biraz daha detay verir misin? Http request için ne kullanıyosun? Dönütü handler delaye bağlamadını düşünürsem dosya olmamasına rağmen kapanıyorsa tamamen farklı bir sebepten olabilir. Dediğim gibi eğer 'Bağlanmaya çalış ve 5 saniye sonra setlenen değeri oku' gibi farazi bi yapı kurmadıysan. Mümkünse kodu da paylaşırsan yardımcı olabiliriz