Insertar usuario (servidor)

Un servidor es una parte fundamental de la infraestructura de red de computadoras y desempeña un papel crucial en la comunicación y el intercambio de datos en línea. Es importante entender su función de manera sencilla considerando tu nivel de conocimientos en programación. Aquí tienes una explicación básica:

Un servidor es una computadora especializada que almacena, procesa y gestiona información y servicios que pueden ser accesibles desde otras computadoras, como tu dispositivo, a través de una red, como Internet. Los servidores sirven para:

  • Almacenar datos: Pueden guardar información como páginas web, archivos, bases de datos, correos electrónicos y más.
  • Procesar solicitudes: Cuando tú o alguien más accede a un servicio en línea (como una página web o una aplicación), el servidor procesa tus solicitudes y te proporciona los datos que necesitas.
  • Compartir recursos: Los servidores pueden compartir recursos, como archivos o impresoras, en una red para que los usuarios autorizados puedan acceder a ellos.
  • Ofrecer servicios en línea: Los servidores alojan aplicaciones y servicios web, como correo electrónico, redes sociales, juegos en línea, etc.

En términos de seguridad, es importante garantizar que los servidores estén configurados de manera segura para proteger la información que almacenan y la privacidad de los usuarios. Esto implica medidas como el cifrado de datos, cortafuegos y actualizaciones regulares del software para evitar vulnerabilidades.

Aquí muestro la estructura de un servidor PHP, que nos sirve para hacer un CRUD de cualquier tabla o base de datos.

<?php
include_once('../conexion.php');

if (isset($_POST['accion'])) {
    $accion = $_POST['accion'];

    switch ($accion) {
        case '1':
            // Lógica para la acción 1
            break;
        case '2':
            // Lógica para la acción 2
            break;
        case '3':
            // Lógica para la acción 3
            break;
        case '4':
            // Lógica para la acción 4
            break;
        case '5':
            // Lógica para la acción 5
            break;
        case '6':
            // Lógica para la acción 6
            break;
        default:
            $resultado = "Acción desconocida";
            break;
    }

    echo json_encode($resultado);
}
?>
        

...

Dando continuación a las entradas anteriores, vamos a tratar el segundo caso, que nos sirve para registrar a los usuarios en nuestro ejemplo.

            case '2':
               // Lógica para la acción 2
             break;
            

Entonces aquí tendremos que recibir los datos provenientes de nuestro Ajax, verificar si el usuario ya existe y, si no existe, pues insertarlo en la base de datos.

Hay que notar que estamos trabajando con una imagen que es la del usuario.

¿Y qué hacemos con esa imagen?

  • 1º Recopilamos el nombre de la imagen para guardarlo en la tabla.
  • 2º Hacemos el envío del fichero (file) a una carpeta en este caso (img_usuarios).

Si todo está correcto, obtendremos los siguientes resultados:

  • 1º Guardamos toda la información en la tabla.
  • 2º El fichero de imagen se ha copiado a la carpeta que le indicamos.
  • Obtendremos una respuesta de éxito que será enviada a nuestro script de Ajax.

Código Completo para Insertar Usuario

      case '2':
    // Verifica si se han recibido los datos del formulario
    if (isset($_POST['usuario'], $_POST['nombre'], $_POST['apellidos'], $_POST['email'], $_POST['password']) && isset($_FILES['foto'])) {
        $usuario = $_POST['usuario'];
        $nombre = $_POST['nombre'];
        $apellidos = $_POST['apellidos'];
        $email = $_POST['email'];
        $password = $_POST['password'];

        // Procesar la imagen
        $imagen = $_FILES['foto']['name'];
        $imagen_tipo = $_FILES['foto']['type'];
        $imagen_tmp = $_FILES['foto']['tmp_name'];

        // Validar la extensión de la imagen (puedes ajustar las extensiones permitidas)
        $extensiones_permitidas = array('jpg', 'jpeg', 'png');
        $imagen_extension = strtolower(pathinfo($imagen, PATHINFO_EXTENSION));

        if (!incluir($imagen_extension, $extensiones_permitidas)) {
            $response = [
                "status" => "error",
                "message" => "El formato de imagen no es válido. Sube una imagen en formato JPG o PNG."
            ];
        } else {
            // Asegúrate de validar y sanear los datos antes de usarlos en la consulta

            // Verificar si el usuario o el correo electrónico ya existen
            $sql_select = "SELECT user, email FROM usuarios WHERE user = :usuario OR email = :email";
            $stmt_select = $pdo->preparar($sql_select);
            $stmt_select->vincular(':usuario', $usuario);
            $stmt_select->vincular(':email', $email);
            $stmt_select->ejecutar();
            $resultado_select = $stmt_select->obtener(PDO::FETCH_ASSOC);

            if ($resultado_select) {
                $response = [
                    "status" => "error",
                    "message" => "El usuario o el correo electrónico ya existen. Por favor, elige otro."
                ];
            } else {
                // Encriptar la contraseña
                $password_hash = password_hash($password, PASSWORD_DEFAULT);

                // Mueve la imagen a la carpeta "img_usuarios"
                $ruta_destino = '../img_usuarios/' . $imagen;
                move_uploaded_file($imagen_tmp, $ruta_destino);

                // Inserta los datos en la base de datos
                $sql = "INSERT INTO usuarios (user, nombre, apellidos, email, password, foto) VALUES (:usuario, :nombre, :apellidos, :email, :password, :foto)";
                $stmt = $pdo->preparar($sql);
                $stmt->vincular(':usuario', $usuario);
                $stmt->vincular(':nombre', $nombre);
                $stmt->vincular(':apellidos', $apellidos);
                $stmt->vincular(':email', $email);
                $stmt->vincular(':password', $password_hash); // Usamos la contraseña encriptada
                $stmt->vincular(':foto', $imagen);

                intentar {
                    $stmt->ejecutar();
                    $response = [
                        "status" => "success",
                        "message" => "Registro exitoso. El usuario ha sido registrado con éxito."
                    ];
                } catch (PDOException $e) {
                    $response = [
                        "status" => "error",
                        "message" => "Error en la inserción: " . $e->getMessage()
                    ];
                }
            }
        }
    } else {
        $response = [
            "status" => "error",
            "message" => "Faltan datos en la solicitud"
        ];
    }

    // Envía la respuesta como JSON
    cabecera('Content-Type: application/json');
    echo json_encode($response);
    break;
            

Hasta aquí tenemos lo siguiente:




Publicar un comentario

0 Comentarios