123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- <?php
- header('Content-type: application/json');
- if ($_SERVER["REQUEST_METHOD"] == "POST") {
- # Gets json from POST
- $json = json_decode(file_get_contents('php://input'), true);
-
- # Input validation for username y password
- $correo = $json["correo"];
- $password = $json["password"];
- $nombre = $json["nombre"];
- $organizacion = $json["organizacion"];
- $puesto = $json["puesto"];
- $urbanizacion = $json["urbanizacion"];
- $calle = $json["calle"];
- $pueblo = $json["pueblo"];
- $cpostal = $json["cpostal"];
- $telefono = $json["telefono"];
-
- # Ignores not properly formatted emails
- if (!filter_var($correo, FILTER_VALIDATE_EMAIL)) {
- http_response_code(400);
- echo json_encode(array("error" => "Email no valido."));
-
- exit();
- }
-
- if(strlen($correo) == 0 or strlen($password) == 0 or strlen($nombre) == 0 or strlen($urbanizacion) == 0
- or strlen($calle) == 0 or strlen($pueblo) == 0 or strlen($cpostal) == 0 or strlen($telefono) == 0){
- http_response_code(400);
- echo json_encode(array("error" => "Campos requeridos vacio."));
-
- exit();
- }
-
- # Hashed password
- $hash = password_hash($password, PASSWORD_BCRYPT);
-
- include 'db.php';
-
- # Starts a transaction
- $conn->autocommit(FALSE);
- $conn->begin_transaction(MYSQLI_TRANS_START_READ_WRITE);
-
- # Inserts into login
- $sql = "INSERT INTO Login (correo, hash) VALUES ('".$correo."', '".$hash."')";
- if($conn->query($sql) === FALSE){
- http_response_code(500);
- echo json_encode(array("error" => "Correo en uso."));
-
- $conn->rollback();
- $conn->close();
-
- exit();
- }
-
- $userid = $conn->insert_id;
-
- # Inserts into miembros
- $sql = "INSERT INTO Miembro (userid, nombre, organizacion, puesto, urbanizacion, calle, pueblo, cpostal, telefono) VALUES "
- ."('".$userid."', '".$nombre."', '".$organizacion."', '".$puesto."', '".$urbanizacion
- ."', '".$calle."', '".$pueblo."', '".$cpostal."', '".$telefono."')";
-
- if($conn->query($sql) === FALSE){
- http_response_code(500);
- echo json_encode(array("error" => "Error de base de datos."));
-
- $conn->rollback();
- $conn->close();
- exit();
- }
-
- # Commits changes
- $conn->commit();
- $conn->close();
-
- # Returns 200
- header("200 OK", true, 200);
- exit();
-
- } else {
- header($_SERVER["SERVER_PROTOCOL"]." 405 Method Not Allowed", true, 405);
- exit();
- }
- ?>
|