Android Login/register app

Bonsoir à tous ! Je me suis lancé dans le developpement android, j’ai suivi un tutoriel pour réaliser la première partie de mon application : Login/Register. En effet, je veux faire une mini app semblable à Facebook, ça demande beaucoup d’éfforts, je le sais :slight_smile::slight_smile::slight_smile: . Voilà, je rencontre certaines difficultés notament, la page de connexion qui est sensée me rediriger sur une autre page (page utilisateur) ne fonctionne pas. Au départ, j’ai pensé à un problème de “Intent” mais jai vérifié, tout était OK et pourtant ça ne marche toujours pas !!!

Voilà le code java de connexion :

package ci.project.mrstevensrims.esnmemberspace;


import android.content.Intent;
import android.support.design.widget.TextInputLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.Toast;


import com.android.volley.RequestQueue;

import java.util.logging.Handler;
import java.util.logging.LogRecord;

import ci.project.mrstevensrims.esnmemberspace.myRequest.MyRequest;

public class ConnexionActivity extends AppCompatActivity {

    private TextInputLayout til_PseudoConnexion, til_MDPConnexion;
    private Button btn_Connexion;
    private RequestQueue queue;
    private MyRequest request;
    private ProgressBar pb_loader;
    private SessionManager sessionManager;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_connexion);


        //Récu^rération du message de l'inscription
        Intent intent = getIntent();
        if(intent.hasExtra("Inscrit")){
            Toast.makeText(this, intent.getStringExtra("Inscrit"), Toast.LENGTH_SHORT).show();
        }

        til_PseudoConnexion = (TextInputLayout) findViewById(R.id.til_PseudoConnexion);
        til_MDPConnexion = (TextInputLayout) findViewById(R.id.til_MDPConnexion);
        btn_Connexion = (Button) findViewById(R.id.bConnexion);
        pb_loader = (ProgressBar) findViewById(R.id.pb_loaderConnexion);
        sessionManager = new SessionManager(this);


        //on recupère notre queue
        queue = VolleyActivity.getInstance(this).getRequestQueue();
        request = new MyRequest(this, queue);


        btn_Connexion.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final String pseudoConnexion = til_PseudoConnexion.getEditText().getText().toString().trim();
                final String MDPConnexion = til_MDPConnexion.getEditText().getText().toString().trim();
                pb_loader.setVisibility(View.GONE );

                if (pseudoConnexion.length() > 0 && MDPConnexion.length() >0){

                    request.connexion(pseudoConnexion, MDPConnexion, new MyRequest.ConnexionCallBack() {
                        @Override
                        public void onSuccess(String id, String pseudoConnexion) {
                            pb_loader.setVisibility(View.GONE );
                            sessionManager.insertUser(id, pseudoConnexion);
                            Intent connect = new Intent(getApplicationContext(), UserCompteActivity.class);
                            startActivity(connect);
                            finish();


                        }

                        @Override
                        public void onError(String message) {
                            pb_loader.setVisibility(View.VISIBLE );
                            Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();

                        }
                    });




                }else{
                    Toast.makeText(getApplicationContext(), "Veuillez remplir tous les champs", Toast.LENGTH_SHORT).show();
                }



            }
        });




    }


}

Voilà pour le XML :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context="ci.project.mrstevensrims.esnmemberspace.ConnexionActivity">



        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            xmlns:tools="http://schemas.android.com/tools"
            android:paddingLeft="@dimen/activity_horizontal_margin"
            android:paddingRight="@dimen/activity_horizontal_margin"
            android:paddingTop="@dimen/activity_vertical_margin"
            android:paddingBottom="@dimen/activity_vertical_margin"
            tools:context=".ConnexionActivity">



            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/Connexion_title"
                android:textSize="40sp"
                android:textColor="#000000"
                android:textStyle="bold"
                android:shadowRadius="2"
                android:shadowDx="1"
                android:shadowDy="1"
                android:layout_alignParentTop="true"
                android:layout_alignParentLeft="true"
                android:id="@+id/textView" />




            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:layout_marginTop="150dp">

                <android.support.design.widget.TextInputLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:id="@+id/til_PseudoConnexion">

                    <EditText
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:id="@+id/etPseudoConnexion"
                        android:inputType="textPersonName"
                        android:singleLine="true"
                        android:imeOptions="actionNext"
                        android:hint="Pseudo : "
                        android:layout_marginBottom="20dp"/>
                </android.support.design.widget.TextInputLayout>

                <android.support.design.widget.TextInputLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:id="@+id/til_MDPConnexion">

                    <EditText
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:id="@+id/etMDPConnexion"
                        android:inputType="textPassword"
                        android:singleLine="true"
                        android:imeOptions="actionNext"
                        android:hint="Mot de passe : "
                        android:layout_marginBottom="20dp"/>
                </android.support.design.widget.TextInputLayout>



                <Button
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal"
                    android:text="Se Connecter"
                    android:id="@+id/bConnexion"
                    android:textColor="#c3c3c3"
                    android:background="#000000"/>

                <ProgressBar
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/pb_loaderConnexion"
                    android:layout_gravity="center_horizontal"
                    android:layout_marginTop="10dp"
                    android:visibility="invisible" />

            </LinearLayout>
    </RelativeLayout>






</LinearLayout>

Et la class Request :

package ci.project.mrstevensrims.esnmemberspace.myRequest;

import android.content.Context;
import android.util.Log;

import com.android.volley.AuthFailureError;
import com.android.volley.NetworkError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;

import org.json.JSONException;
import org.json.JSONObject;

import java.util.HashMap;
import java.util.Map;

/**
 * Created by Mr. Stevens Rims on 08/01/2018.
 */
public class MyRequest {

    private Context context;
    private RequestQueue queue;

    //Création du constructeur MyRequest
    public MyRequest (Context context, RequestQueue queue){

        this.context = context;
        this.queue = queue;
    }

    //On crée une fonction pour récupérer nos données entrées pour l'inscription

    public void inscription(final String nom, final String prenom, final String pseudo, final String sexe, final String email, final String matricule, final String motPasse, final String confirMotPass, final InscriptionCallBack callBack){


        String url = "http://192.168.52.1/ConceptionPHP/inscription.php";

        StringRequest request = new StringRequest(Request.Method.POST, url, new Response.Listener<String>(){
            @Override
            public void onResponse(String response) {

                //Log.d("APP", response);

                Map<String, String> errors = new HashMap<>();


                try {
                    JSONObject json = new JSONObject(response);
                    Boolean error = json.getBoolean("error");

                    if(!error){

                        //L'inscription s'est bien déroulée.
                        callBack.onSuccess("Vous êtes bien inscrits");



                    }else {
                        //Gestion des erreurs en cas d'erreurs

                        JSONObject messages = json.getJSONObject("message");

                        if(messages.has("nom")){
                            errors.put("nom", messages.getString("nom"));

                        }
                        if(messages.has("prenom")){
                            errors.put("prenom", messages.getString("prenom"));
                        }
                        if(messages.has("pseudo")){
                            errors.put("pseudo", messages.getString("pseudo"));

                        }
                        if(messages.has("sexe")){
                            errors.put("sexe", messages.getString("sexe"));
                        }
                        if(messages.has("mail")){
                            errors.put("mail", messages.getString("mail"));
                        }
                        if(messages.has("matricule")){
                            errors.put("matricule", messages.getString("matricule"));
                        }
                        if(messages.has("mot_de_passe")){
                            errors.put("mot_de_passe", messages.getString("mot_de_passe"));
                        }

                        callBack.inputErrors(errors);
                    }

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


            }
        }, new Response.ErrorListener(){
            @Override
            public void onErrorResponse(VolleyError error) {

              // Log.d("APP", "ERROR = "+ error);

                if(error instanceof NetworkError){
                    callBack.onError("Impossible de se connecter !");
                } else if(error instanceof VolleyError){
                    callBack.onError("Une erreur s'est produite !");
                }

            }

        }){

            //Methode dans laquelle sera envoyé les paramètres que nous voulons tester dans le script php
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {

                //On recupère nos données pour le server

                Map<String, String> map = new HashMap<>();
                map.put("nom", nom);
                map.put("prenom", prenom);
                map.put("pseudo", pseudo);
                map.put("sexe", sexe);
                map.put("mail", email);
                map.put("matricule", matricule);
                map.put("mot_de_passe", motPasse);
                map.put("confirm_mot_de_passe", confirMotPass);


                return map;
            }
        };

        queue.add(request);

    }

    //Fonction pour renvoyer nos différents résultats sur notre activité

     public interface InscriptionCallBack{

        void onSuccess(String message);
        void inputErrors(Map<String, String> errors); //Erreurs liés aux infos entrés par l'user
        void onError(String message); //Erreur de connexion et autres
    }





    //fonction pour envoyer nos données
    public void connexion(final String pseudoConnexion, final String mot_de_passe, final ConnexionCallBack callBack){

        String url = "http://192.168.52.1/ConceptionPHP/connexion.php";
        StringRequest request = new StringRequest(Request.Method.POST, url, new Response.Listener<String>(){
            @Override
            public void onResponse(String response) {

                JSONObject json;
                try {
                    json = new JSONObject(response);
                    Boolean error = json.getBoolean("error");

                    if (!error){
                        String id = json.getString("id");
                        String pseudoConnexion = json.getString("pseudoConnexion");
                        callBack.onSuccess(id, pseudoConnexion);
                    }else {
                        callBack.onError(json.getString("message"));
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                    callBack.onError("Une erreur s'est produite !");
                }


            }
        }, new Response.ErrorListener(){
            @Override
            public void onErrorResponse(VolleyError error) {



                if(error instanceof NetworkError){
                    callBack.onError("Impossible de se connecter !");
                } else if(error instanceof VolleyError){
                    callBack.onError("Une erreur s'est produite !");
                }

            }

        }){

            //Methode dans laquelle sera envoyé les paramètres que nous voulons tester dans le script php
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {

                //On recupère nos données pour le server

                Map<String, String> map = new HashMap<>();
                map.put("pseudo", pseudoConnexion);
                map.put("mot de passe", mot_de_passe);



                return map;
            }
        };

        queue.add(request);


    }

    public interface ConnexionCallBack{

            void onSuccess (String id, String pseudoConnexion);
            void onError (String message);

    }
}

J’ai grave besoin d’aide !!!

Hi @stevrims ,

Thanks for participating!

We take our Code of Conduct very seriously and want to help ensure that everyone has a good experience free of antagonism and harassment. Unfortunately, we don’t currently have moderators for languages other than English. What this means is that, until that changes, we need to ask that everyone use English here in the GitHub Community Forum when posting. We’ll be locking any posts in languages other than English for now, including this one.

You’re more than welcome to open a new Topic, in English, to ask your question.

Thanks for meeting us halfway :grinning:

2 Likes