שלום לכם חברים!
אני מנסה ליצור טופס הרשמה דרך אפליקציה באנדרואיד, והמידע שהוכנס לשם אמור להישמר במסד נתונים אצלי בשרת.
הנתונים שאני מכניס אל 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;
}
}
אני מנסה להבין היכן הטעות שלי ולמה זה לא באמת שומר לי את המידע בטבלה.
תודה מראש לעוזרים.











