Spaces:
Sleeping
Sleeping
File size: 1,955 Bytes
56fb0d1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | <?php
header("Content-Type: application/json");
include "db.php";
$data = json_decode(file_get_contents("php://input"), true);
$user_id = $data["user_id"];
$name = trim($data["name"] ?? "");
$phone = trim($data["phone"] ?? "");
$password = $data["password"] ?? "";
$current_password = $data["current_password"] ?? "";
if (!$user_id) {
echo json_encode(["status" => "error", "message" => "Invalid user ID"]);
exit;
}
// Verify current password if changing password
if ($password) {
if (!$current_password) {
echo json_encode(["status" => "error", "message" => "Current password required"]);
exit;
}
// Verify current password
$stmt = $conn->prepare("SELECT password FROM users WHERE id = ?");
$stmt->execute([$user_id]);
$user = $stmt->fetch();
if (!$user) {
echo json_encode(["status" => "error", "message" => "User not found"]);
exit;
}
if ($current_password !== $user['password']) {
echo json_encode(["status" => "error", "message" => "Current password is incorrect"]);
exit;
}
// Validate new password
if (strlen($password) < 6) {
echo json_encode(["status" => "error", "message" => "Password must be at least 6 characters"]);
exit;
}
}
$updates = [];
$params = [];
if ($name) { $updates[] = "name = ?"; $params[] = $name; }
if ($phone) { $updates[] = "phone = ?"; $params[] = $phone; }
if ($password) { $updates[] = "password = ?"; $params[] = $password; }
if (empty($updates)) {
echo json_encode(["status" => "error", "message" => "No changes to update"]);
exit;
}
$params[] = $user_id;
$sql = "UPDATE users SET " . implode(", ", $updates) . " WHERE id = ?";
$stmt = $conn->prepare($sql);
if ($stmt->execute($params)) {
echo json_encode(["status" => "success", "message" => "Profile updated"]);
} else {
echo json_encode(["status" => "error", "message" => "Update failed"]);
}
?>
|