Petición Axios me duplica el contenido
#1
Buenos días, tengo este pequeño problema, estoy haciendo una petición simple con Axios para insertar un valor a la base de datos, el problema es que me genera dos campos, un campo está vacío y otro campo con los datos ingresados:

Petición:

Código PHP:
const [messagesetMessage] = useState("Esperando...");

    const handleInformation = (event) => {
        setData({
            ...data,
            [event.target.name] : event.target.value
        
})
    }

    const sendData = (event) => {
        event.preventDefault();
        
        
const URL "http://127.0.0.1/datos.php";
        
        axios
({
            method"POST",
            urlURL,
            data: {
                namedata.name,
                surnamedata.surname,
                accountdata.account,
                passworddata.password
            
}
        })
        .then((res) => {
            setMessage(res.data);
        });
    

CONSULTA:
Código PHP:
<?php
    $server 
"127.0.0.1";
    $user "root";
    $password "";
    $db "registros";

    $conexion mysqli_connect($server$user$password$db);
        
    
if (!$conexion) {
        die("Ocurrió un error en la conexión" mysqli_connect_error());
        return;
    }

    $data json_decode(file_get_contents("php://input"true));

    $consulta 
    "INSERT INTO usuarios (nombre, apellido, usuario, password) 
    VALUES ('
$data->name', '$data->surname', '$data->account', '$data->password')";

    if (mysqli_query($conexion$consulta)) {
        print_r($data);
    }
    else {
        echo "Ocurrió un error al registrarte";
    }

    mysqli_close($conexion);
?>

[Imagen: Lug2k6M.jpeg]
Responder
#2
Tu codigo es injectable, deberias usar prepared statements. Tampoco deberias guardar claves en texto plano, una buena opcion es usar bcrypt con 10-12 rondas.

En la consola del navegador aparecen dos requiests?
[Imagen: paypalqr.png]
Responder
#3
(30/06/2021, 01:40 PM)Neeeeeeeeeel.- escribió: Tu codigo es injectable, deberias usar prepared statements. Tampoco deberias guardar claves en texto plano, una buena opcion es usar bcrypt con 10-12 rondas.

En la consola del navegador aparecen dos requiests?

Lo hice así nomas simple para probar cosas, pero lo que no entiendo es por qué me genera un campo sin datos y otro con datos, usé una extensión de CORS para evitar el 'Access-Control-Allow-Origin' y así poder trabajar con Axios de manera local, también probé ingresando a la URL http://127.0.0.1/datos.php y me genera la consulta bien hecha, quizás puede ser la extensión esa que me genera doble petición.
Responder
#4
No respondisiste la pregunta
[Imagen: paypalqr.png]
Responder
#5
Ya lo pude solucionar Nelson, el problema era, sí, definitivamente, la extensión que estaba usando para evitar el CORS al hacer la petición. Con respecto a tu mensaje: Tu codigo es injectable, deberias usar prepared statements. Tampoco deberias guardar claves en texto plano, una buena opcion es usar bcrypt con 10-12 rondas. me podrías explicar eso de las sentencias preparadas y eso de no guardar claves en texto plano? Revisé un poco ese tema y no entendí muy bien cuál es su función.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)