Herkese selamlar uzun süredir java ile ilgilenmiyordum ufak bir yardımcı proje için yeniden bir girip retrofit ile api yazıp basit bir şey çıkarayım dedim kullanıcı kayıt esnasında kayıt başarılı oluyor fakat veritabanına basılacak olan veriler basılmıyor boş satır ekleniyor sebebi ne olabilir kodları aşağıya bırakıyorum ;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.POST;
public interface RetrofitService {
@POST("register.php")
Call<ApiResponse> registerUser(@Body User user);
}public class ApiResponse {
private boolean success;
private String message;
public ApiResponse(boolean success, String message) {
this.success = success;
this.message = message;
}
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}public class User {
@SerializedName("name")
private String name;
@SerializedName("phone")
private String phone;
@SerializedName("email")
private String email;
public User(String name, String phone, String email) {
this.name = name;
this.phone = phone;
this.email = email;
}
// Getter ve setter metodları
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import java.io.IOException;
public class RegisterActivity extends AppCompatActivity {
EditText editName, editPhone, editEmail;
Button btnRegister;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
editName = findViewById(R.id.edit_name);
editPhone = findViewById(R.id.edit_phone);
editEmail = findViewById(R.id.edit_email);
btnRegister = findViewById(R.id.btn_register);
btnRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String name = editName.getText().toString().trim();
final String phone = editPhone.getText().toString().trim();
final String email = editEmail.getText().toString().trim();
if (TextUtils.isEmpty(name) || TextUtils.isEmpty(phone) || TextUtils.isEmpty(email)) {
Toast.makeText(RegisterActivity.this, "Please fill in all fields", Toast.LENGTH_SHORT).show();
} else {
// Call the method to send user data to the server
sendUserDataToServer(name, phone, email);
}
}
});
}
private void sendUserDataToServer(String name, String phone, String email) {
String url = "https://apiurl/api/"; //
OkHttpClient client = new OkHttpClient();
RequestBody requestBody = new FormBody.Builder()
.add("name", name)
.add("phone", phone)
.add("email", email)
.build();
Request request = new Request.Builder()
.url(url)
.post(requestBody)
.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
Toast.makeText(RegisterActivity.this, "Network error: " + e.getMessage(), Toast.LENGTH_SHORT).show();
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful()) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(RegisterActivity.this, "Registration successful!", Toast.LENGTH_SHORT).show();
}
});
startActivity(new Intent(RegisterActivity.this, MainActivity.class));
finish();
} else {
final String errorMessage = "Server error: " + response.message();
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(RegisterActivity.this, errorMessage, Toast.LENGTH_SHORT).show();
}
});
}
}
});
}
}// MySQL veritabanı bağlantısı için gerekli bilgiler
$servername = "";
$username = "";
$password = "";
$database = "";
$data = json_decode(file_get_contents("php://input"), true);
$name = $data['name'];
$phone = $data['phone'];
$email = $data['email'];
$conn = new mysqli($servername, $username, $password, $database);
// Bağlantıyı kontrol et
if ($conn->connect_error) {
die("Veritabanına bağlanılamadı: " . $conn->connect_error);
}
$sql = "INSERT INTO users (name, phone, email) VALUES ('$name', '$phone', '$email')";
$response = array();
if ($conn->query($sql) === TRUE) {
$response['success'] = true;
$response['message'] = "Kullanıcı başarıyla eklendi.";
} else {
$response['success'] = false;
$response['message'] = "Hata: " . $sql . "<br>" . $conn->error;
}
echo json_encode($response);
$conn->close();
?>