-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.php
More file actions
129 lines (103 loc) · 3.82 KB
/
index.php
File metadata and controls
129 lines (103 loc) · 3.82 KB
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?php
// Encabezados CORS para permitir solicitudes desde Postman y cualquier origen
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, DELETE, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type, Authorization");
header("Content-Type: application/json; charset=UTF-8");
// Activa la visualización de errores para depuración
error_reporting(E_ALL);
ini_set('display_errors', 1);
?>
<?php
// Parametros de conexión a Clever Cloud
$servername = "btvax3f1faoz6dli8zrx-mysql.services.clever-cloud.com";
$username = "uwn4oeduomhguidh";
$password = "9fZhJdADyQ3edlVjPTaJ";
$dbname = "btvax3f1faoz6dli8zrx";
$port = 3306;
$conn = new mysqli($servername, $username, $password, $dbname, $port);
if ($conn->connect_error) {
die("Conexión fallida: " . $conn->connect_error);
} else {
echo json_encode(["message" => "Conexión exitosa"]);
}
$conn->set_charset("utf8");
//recepciona la informacion
header("Content-Type: application/json");
$metodo = $_SERVER['REQUEST_METHOD'];
$path = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '/';
$buscarId = explode('/', $path);
$id = ($path !== '/') ? end($buscarId) : null;
switch ($metodo) {
// SELECT usuarios
case 'GET':
consulta();
break;
// INSERT
case 'POST':
insertar(); // Llamamos la función insertar sin pasarle parámetros
break;
// DELETE
case 'DELETE':
borrar($conn, $id); // Pasamos la conexión y el ID a la función borrar
break;
default:
echo json_encode(["error" => "Método no permitido"]);
}
function consulta() {
global $conn;
// Consulta para obtener todos los usuarios
$sql = "SELECT * FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$users = [];
while ($row = $result->fetch_assoc()) {
$users[] = $row;
}
echo json_encode($users);
} else {
echo json_encode(["message" => "No se encontraron usuarios"]);
}
}
function insertar() {
global $conn;
// Recibimos el dato y lo decodificamos para rediseccionarlo
$dato = json_decode(file_get_contents('php://input'), true);
// Verificamos que los datos existan
if (isset($dato['first_name'], $dato['last_name'], $dato['age'], $dato['curp'])) {
// Extraemos los datos
$first_name = $conn->real_escape_string($dato['first_name']);
$last_name = $conn->real_escape_string($dato['last_name']);
$age = (int) $dato['age'];
$curp = $conn->real_escape_string($dato['curp']);
// Preparamos la consulta para insertar los datos
$sql = "INSERT INTO users (first_name, last_name, age, curp) VALUES ('$first_name', '$last_name', $age, '$curp')";
// Ejecutamos la consulta y verificamos si fue exitosa
if ($conn->query($sql) === TRUE) {
echo json_encode(["message" => "Usuario creado exitosamente", "id" => $conn->insert_id]);
} else {
echo json_encode(["error" => "Error al crear el usuario: " . $conn->error]);
}
} else {
echo json_encode(["error" => "Faltan datos para insertar el usuario"]);
}
}
function borrar($conexion, $id) {
// Verificamos si el ID es válido
if ($id && is_numeric($id)) {
// Sanitizamos el ID para evitar SQL injection
$id = (int) $id;
// Preparamos la consulta DELETE
$sql = "DELETE FROM users WHERE id = $id";
// Ejecutamos la consulta y verificamos si fue exitosa
if ($conexion->query($sql) === TRUE) {
echo json_encode(["message" => "Usuario eliminado exitosamente"]);
} else {
echo json_encode(["error" => "Error al eliminar el usuario: " . $conexion->error]);
}
} else {
echo json_encode(["error" => "ID inválido"]);
}
}
$conn->close();
?>