Insérer des données à partir d' android dans ma database mysql
katiadja
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
katiadja Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
katiadja Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous, d'abord j'aimerais m'excuser si la question a déjà été posée mais depuis je cherche et je ne trouve pas de solution.
j'ai créé une interface utilisateur sur android studio pour que l'utilisateur puisse y insérer son Nom, Prénom, date de naissance etc...
une fois qu'il aura renseigné ces champs je voudrais récupérer ces données et les insérer dans ma base de donnée mysql grâce à PHP.
j'ai donc suivi un tutoriel et le code qui a été proposé est le suivant:
Code :
et j'ai les erreurs suivant sur mon serveur web:
Notice: Undefined index: Nom in C:\wamp\www\test\Register.php on line 6
Notice: Undefined index: Prenom in C:\wamp\www\test\Register.php on line 8
Notice: Undefined index: Datedenaissance in C:\wamp\www\test\Register.php on line 10
Notice: Undefined index: Motdepasse in C:\wamp\www\test\Register.php on line 12
Notice: Undefined index: Nomdutilisateur in C:\wamp\www\test\Register.php on line 14
Notice: Undefined index: Statut in C:\wamp\www\test\Register.php on line 16
Warning: mysqli_stmt_bind_param() expects parameter 1 to be mysqli_stmt, boolean given in C:\wamp\www\test\Register.php on line 20
Warning: mysqli_stmt_execute() expects parameter 1 to be mysqli_stmt, boolean given in C:\wamp\www\test\Register.php on line 22
Warning: mysqli_close() expects parameter 1 to be mysqli, boolean given in C:\wamp\www\test\Register.php on line 24
voici le contenu de la classe JAVA qui permet de gérer le formulaire
le contenu de la classe ServerRequests associée:
j'ai créé une interface utilisateur sur android studio pour que l'utilisateur puisse y insérer son Nom, Prénom, date de naissance etc...
une fois qu'il aura renseigné ces champs je voudrais récupérer ces données et les insérer dans ma base de donnée mysql grâce à PHP.
j'ai donc suivi un tutoriel et le code qui a été proposé est le suivant:
Code :
<?php $con=mysqli_connect("localhost","root","","mabase"); $Nom = $_POST["Nom"]; $Prenom = $_POST["Prenom"]; $Datedenaissance = $_POST["Datedenaissance"]; $Motdepasse = $_POST["Motdepasse"]; $Nomdutilisateur = $_POST["Nomdutilisateur"]; $Statut = $_POST["Statut"]; $statement = mysqli_prepare($con, "INSERT INTO User (Nom, Prenom, Datedenaissance, Motdepasse, Nomdutilisateur, Statut) VALUES (?, ?, ?, ?, ?, ?)"); mysql_stmt_bind_param($statement, "ssiss", $Nom, $Prenom, $Datedenaissance, $Motdepasse, $Nomdutilisateur, $Statut); mysqli_stmt_execute($statement); mysqli_stmt_close($statement); mysqli_close($con); ?>
et j'ai les erreurs suivant sur mon serveur web:
Notice: Undefined index: Nom in C:\wamp\www\test\Register.php on line 6
Notice: Undefined index: Prenom in C:\wamp\www\test\Register.php on line 8
Notice: Undefined index: Datedenaissance in C:\wamp\www\test\Register.php on line 10
Notice: Undefined index: Motdepasse in C:\wamp\www\test\Register.php on line 12
Notice: Undefined index: Nomdutilisateur in C:\wamp\www\test\Register.php on line 14
Notice: Undefined index: Statut in C:\wamp\www\test\Register.php on line 16
Warning: mysqli_stmt_bind_param() expects parameter 1 to be mysqli_stmt, boolean given in C:\wamp\www\test\Register.php on line 20
Warning: mysqli_stmt_execute() expects parameter 1 to be mysqli_stmt, boolean given in C:\wamp\www\test\Register.php on line 22
Warning: mysqli_close() expects parameter 1 to be mysqli, boolean given in C:\wamp\www\test\Register.php on line 24
voici le contenu de la classe JAVA qui permet de gérer le formulaire
import android.content.Intent; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; public class Register extends ActionBarActivity implements View.OnClickListener { Button bRegister; EditText etNom, etPrenom, etDatedenaissance, etNomdutilisateur, etMotdepasse, etStatut; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); etNom = (EditText) findViewById(R.id.etNom); etPrenom = (EditText) findViewById(R.id.etPrenom); etDatedenaissance = (EditText) findViewById(R.id.etDatedenaissance); etNomdutilisateur = (EditText) findViewById(R.id.etNomdutilisateur); etMotdepasse = (EditText) findViewById(R.id.etMotdepasse); etStatut = (EditText) findViewById(R.id.etStatut); bRegister = (Button) findViewById(R.id.bValider); bRegister.setOnClickListener(this); } @Override public void onClick(View v) { switch(v.getId()){ case R.id.bRegister: String nom = etNom.getText().toString(); String prenom = etPrenom.getText().toString(); String Nomdutilisateur = etNomdutilisateur.getText().toString(); String Motdepasse = etMotdepasse.getText().toString(); String statut = etStatut.getText().toString(); int Datedenaissance = Integer.parseInt(etDatedenaissance.getText().toString()); break; } } private void registerUser(User user ) { ServerRequests serverRequests = new ServerRequests(this); serverRequests.storeUserDataInBackground(user, new GetUserCallback() { @Override public void done(User returnedUser) { Intent logInetent = new Intent(Register.this, enregistrer.class); startActivity(logInetent); } }); } }
le contenu de la classe ServerRequests associée:
import android.app.ProgressDialog; import android.content.Context; import android.os.AsyncTask; import android.util.Log; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.params.BasicHttpParams; import org.apache.http.params.HttpConnectionParams; import org.apache.http.params.HttpParams; import org.apache.http.util.EntityUtils; import org.json.JSONObject; import java.util.ArrayList; public class ServerRequests { ProgressDialog progressDialog; public static final int CONNECTION_TIMEOUT = 1000 * 15; public static final String SERVER_ADDRESS = "[http://localhost:8000/]"; public ServerRequests(Context context) { progressDialog = new ProgressDialog(context); progressDialog.setCancelable(false); progressDialog.setTitle("Processing..."); progressDialog.setMessage("Please wait..."); } public void storeUserDataInBackground(User user, GetUserCallback userCallBack) { progressDialog.show(); new StoreUserDataAsyncTask(user, userCallBack).execute(); } public void fetchUserDataAsyncTask(User user, GetUserCallback userCallBack) { progressDialog.show(); new fetchUserDataAsyncTask(user, userCallBack).execute(); } public class StoreUserDataAsyncTask extends AsyncTask<Void, Void, Void> { User user; GetUserCallback userCallBack; public StoreUserDataAsyncTask(User user, GetUserCallback userCallBack) { this.user = user; this.userCallBack = userCallBack; } @Override protected Void doInBackground(Void... params) { ArrayList<NameValuePair> dataToSend = new ArrayList<>(); dataToSend.add(new BasicNameValuePair("Nom", user.Nom)); dataToSend.add(new BasicNameValuePair("Prenom", user.Prenom)); dataToSend.add(new BasicNameValuePair("Nomdutilisateur", user.Nomdutilisateur)); dataToSend.add(new BasicNameValuePair("Motdepasse", user.Motdepasse)); dataToSend.add(new BasicNameValuePair("Datedenaissance", user.Datedenaissance + "")); dataToSend.add(new BasicNameValuePair("Statut", user.Statut)); HttpParams httpRequestParams = getHttpRequestParams(); HttpClient client = new DefaultHttpClient(httpRequestParams); HttpPost post = new HttpPost(SERVER_ADDRESS + "Register.php"); try { post.setEntity(new UrlEncodedFormEntity(dataToSend)); client.execute(post); } catch (Exception e) { e.printStackTrace(); } return null; } private HttpParams getHttpRequestParams() { HttpParams httpRequestParams = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpRequestParams, CONNECTION_TIMEOUT); HttpConnectionParams.setSoTimeout(httpRequestParams, CONNECTION_TIMEOUT); return httpRequestParams; } @Override protected void onPostExecute(Void result) { super.onPostExecute(result); progressDialog.dismiss(); userCallBack.done(null); } } public class fetchUserDataAsyncTask extends AsyncTask<Void, Void, User> { User user; GetUserCallback userCallBack; public fetchUserDataAsyncTask(User user, GetUserCallback userCallBack) { this.user = user; this.userCallBack = userCallBack; } @Override protected User doInBackground(Void... params) { ArrayList<NameValuePair> dataToSend = new ArrayList<>(); dataToSend.add(new BasicNameValuePair("Nomdutilisateur", user.Nomdutilisateur)); dataToSend.add(new BasicNameValuePair("Motdepasse", user.Motdepasse)); HttpParams httpRequestParams = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpRequestParams, CONNECTION_TIMEOUT); HttpConnectionParams.setSoTimeout(httpRequestParams, CONNECTION_TIMEOUT); HttpClient client = new DefaultHttpClient(httpRequestParams); HttpPost post = new HttpPost(SERVER_ADDRESS + "verification.php"); User returnedUser = null; try { post.setEntity(new UrlEncodedFormEntity(dataToSend)); HttpResponse httpResponse = client.execute(post); HttpEntity entity = httpResponse.getEntity(); String result = EntityUtils.toString(entity); JSONObject jObject = new JSONObject(result); if (jObject.length() != 0){ Log.v("happened", "2"); String Nom = jObject.getString("Nom"); String Prenom = jObject.getString("Prenom"); String Statut = jObject.getString("Statut"); int Datedenaissance = jObject.getInt("Datedenaissance"); returnedUser = new User(Nom, Prenom, Datedenaissance, user.Nomdutilisateur, user.Motdepasse, Statut); } } catch (Exception e) { e.printStackTrace(); } return returnedUser; } @Override protected void onPostExecute(User returnedUser) { super.onPostExecute(returnedUser); progressDialog.dismiss(); userCallBack.done(returnedUser); } } }
EDIT : Ajout du LANGAGE dans les balises de code.
Explications disponibles ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Insérer des données à partir d' android dans ma database mysql
- Insérer une vidéo dans powerpoint - Guide
- Android recovery - Guide
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Effacer les données de navigation sur android - Guide
- À quoi sert google drive sur android - Guide
mais ça ne marche toujours pas. Ensuite pour la méthode RegisterUser() c'est la partie là:
et il appelle la classe ServerRequests
En fait j'aimerai d'abords résoudre ce problème avant d'insérer les vérification.
Quitte à utiliser , autant faire un echo d'un message d'erreur pour ne pas oublier...