שלום לכם חברים!
אני מנסה ליצור טופס הרשמה דרך אפליקציה באנדרואיד, והמידע שהוכנס לשם אמור להישמר במסד נתונים אצלי בשרת.
הנתונים שאני מכניס אל msqli_connect הם נכונים, אבל משום מה אני לא רואה את הרשומה לאחר הרישום באפליקציה.
זה הקובץ LOGIN
<?php $con = mysqli_connect("My Host", "costumer", "My password", "costumer"); $username = $_POST["username"]; $password = $_POST["password"]; $statement = mysqli_prepare($con, "SELECT * FROM costumer WHERE username = ? AND password = ?"); mysqli_stmt_bind_param($statement, "ss", $username, $password); mysqli_stmt_execute($statement); mysqli_stmt_store_result($statement); mysqli_stmt_bind_result($statement, $userID, $name, $username, $password,$age); $response = array(); $response["success"] = false; while(mysqli_stmt_fetch($statement)){ $response["success"] = true; $response["name"] = $name; $response["age"] = $age; $response["username"] = $username; $response["password"] = $password; } echo json_encode($response); ?
זה קובץ ההרשמה:
<?php $con = mysqli_connect("my host", "costumer", "My password", "costumer"); $name = $_POST["name"]; $age = $_POST["age"]; $username = $_POST["username"]; $password = $_POST["password"]; $statement = mysqli_prepare($con, "INSERT INTO Users (name, age, username, password) VALUES (?, ?, ?, ?,?)"); mysqli_stmt_bind_param($statement, "siss", $name, $username, $password,$age); mysqli_stmt_execute($statement); $response = array(); $response["success"] = true; echo json_encode($response); ?>
אלו שני ה-activities באפליקציה דרכם אני נרשם וזה אמור לשמור את זה בשרת:
1:
public class register_activity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.register_activity); final EditText edtAge=(EditText)findViewById(R.id.edtAge1); final EditText edtName=(EditText)findViewById(R.id.edtname); final EditText edtUserName=(EditText)findViewById(R.id.edtUserName); final EditText edtPassword=(EditText)findViewById(R.id.edtPassword); final Button btnSignUP=(Button)findViewById(R.id.btnsignup); assert btnSignUP != null; btnSignUP.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final String name=edtName.getText().toString(); final String username=edtUserName.getText().toString(); final String password=edtPassword.getText().toString(); final int age = Integer.parseInt(edtAge.getText().toString()); Response.Listener<String>responseListener=new Response.Listener<String>() { @Override public void onResponse(String response) { try { JSONObject jsonResponse=new JSONObject(response); boolean success=jsonResponse.getBoolean("success"); if(success){ Intent intent=new Intent(register_activity.this,login_activity.class); register_activity.this.startActivity(intent); } else{ AlertDialog.Builder builder=new AlertDialog.Builder(register_activity.this); builder.setMessage("The Signup Has Faild").setNegativeButton("Retry",null).create().show(); } } catch (JSONException e) { e.printStackTrace(); } } }; RegisterReq registerReq = new RegisterReq(name,username,password,age,responseListener); RequestQueue queue = Volley.newRequestQueue(register_activity.this); queue.add(registerReq); } }); } }
2:
public class RegisterReq extends StringRequest{ private static final String registerUrl="http://myhost.com/Register.php"; private Map<String,String> params; public RegisterReq(String name, String username, String password, int age,Response.Listener<String>listener){ super(Method.POST,registerUrl,listener,null); params=new HashMap<>(); params.put("name",name); params.put("username",username); params.put("password",password); params.put("age",age+""); } @Override public Map<String, String> getParams() { return params; } }
אני מנסה להבין היכן הטעות שלי ולמה זה לא באמת שומר לי את המידע בטבלה.
תודה מראש לעוזרים.