CRUD BARD sql con ajax jquery type json json mysql con pdo php SEGURIDAD PHP
Haceme el codigo de insert sql con ajax jquery type json y respuesta ok del json al guardar nombre y precio a una base dato mysql con pdo php
1
De acuerdo, aquí tienes el código de insert SQL con Ajax jQuery type JSON y respuesta OK del JSON al guardar nombre y precio a una base de datos MySQL con PDO PHP:
HTML
HTML
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Insertar registro con Ajax</title>
</head>
<body>
<h1>Insertar registro</h1>
<form action="" method="post">
<input type="text" name="nombre" placeholder="Nombre">
<input type="number" name="precio" placeholder="Precio">
<input type="submit" value="Guardar">
</form>
</body>
</html>
Usa el código con precaución. Más información
JavaScript
JavaScript
$(document).ready(function() {
// Evento submit del formulario
$("#formulario").submit(function(event) {
// Cancelar el evento nativo
event.preventDefault();
// Obtener los valores del formulario
var nombre = $("#nombre").val();
var precio = $("#precio").val();
// Enviar los datos al servidor
$.ajax({
type: "POST",
url: "insertar.php",
data: {
nombre: nombre,
precio: precio
},
dataType: "json",
success: function(respuesta) {
// Si la respuesta es OK
if (respuesta.ok) {
// Mostrar mensaje de éxito
alert("Registro guardado correctamente");
} else {
// Mostrar mensaje de error
alert("Error al guardar el registro");
}
}
});
});
});
Usa el código con precaución. Más información
PHP
PHP
<?php
// Conectar a la base de datos
$conexion = new PDO("mysql:host=localhost;dbname=mi_base_de_datos", "root", "");
// Crear la consulta SQL
$consulta = "INSERT INTO productos (nombre, precio) VALUES (:nombre, :precio)";
// Preparar la consulta
$sentencia = $conexion->prepare($consulta);
// Vincular los parámetros
$sentencia->bindParam(":nombre", $nombre);
$sentencia->bindParam(":precio", $precio);
// Obtener los valores del formulario
$nombre = $_POST["nombre"];
$precio = $_POST["precio"];
// Ejecutar la consulta
$sentencia->execute();
// Cerrar la conexión
$conexion = null;
// Crear el objeto respuesta
$respuesta = new stdClass();
// Asignar el valor de ok
$respuesta->ok = true;
// Devolver la respuesta
echo json_encode($respuesta);
?>
Usa el código con precaución. Más información
Explicación del código
En el HTML, tenemos un formulario con dos campos, uno para el nombre y otro para el precio. Al hacer clic en el botón "Guardar", se envían los datos del formulario al servidor.
En el JavaScript, primero se captura el evento submit del formulario. Luego, se obtienen los valores de los campos del formulario. A continuación, se envían los datos al servidor mediante una solicitud AJAX.
En el PHP, se conecta a la base de datos y se crea la consulta SQL para insertar un nuevo registro. Se preparan los parámetros de la consulta y se vinculan a los valores del formulario. A continuación, se ejecuta la consulta y se cierra la conexión.
Por último, se crea el objeto respuesta y se asigna el valor de ok a true. Luego, se devuelve la respuesta en formato JSON.
Este código es un ejemplo básico de cómo insertar un registro en una base de datos MySQL con Ajax y PDO PHP.
Fuentes
github.com/mframirezfuentes/ApiRest
foto de perfil
Hacer el update por id con pdo php metodo post type json resp
De acuerdo, aquí tienes el código de update por ID con PDO PHP, método POST, type JSON y resp:
HTML
HTML
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Actualizar registro con Ajax</title>
</head>
<body>
<h1>Actualizar registro</h1>
<form action="" method="post">
<input type="hidden" name="id" value="1">
<input type="text" name="nombre" placeholder="Nombre">
<input type="number" name="precio" placeholder="Precio">
<input type="submit" value="Actualizar">
</form>
</body>
</html>
Usa el código con precaución. Más información
JavaScript
JavaScript
$(document).ready(function() {
// Evento submit del formulario
$("#formulario").submit(function(event) {
// Cancelar el evento nativo
event.preventDefault();
// Obtener los valores del formulario
var id = $("#id").val();
var nombre = $("#nombre").val();
var precio = $("#precio").val();
// Enviar los datos al servidor
$.ajax({
type: "POST",
url: "actualizar.php",
data: {
id: id,
nombre: nombre,
precio: precio
},
dataType: "json",
success: function(respuesta) {
// Si la respuesta es OK
if (respuesta.ok) {
// Mostrar mensaje de éxito
alert("Registro actualizado correctamente");
} else {
// Mostrar mensaje de error
alert("Error al actualizar el registro");
}
}
});
});
});
Usa el código con precaución. Más información
PHP
PHP
<?php
// Conectar a la base de datos
$conexion = new PDO("mysql:host=localhost;dbname=mi_base_de_datos", "root", "");
// Crear la consulta SQL
$consulta = "UPDATE productos SET nombre=:nombre, precio=:precio WHERE id=:id";
// Preparar la consulta
$sentencia = $conexion->prepare($consulta);
// Vincular los parámetros
$sentencia->bindParam(":id", $id);
$sentencia->bindParam(":nombre", $nombre);
$sentencia->bindParam(":precio", $precio);
// Obtener los valores del formulario
$id = $_POST["id"];
$nombre = $_POST["nombre"];
$precio = $_POST["precio"];
// Ejecutar la consulta
$sentencia->execute();
// Cerrar la conexión
$conexion = null;
// Crear el objeto respuesta
$respuesta = new stdClass();
// Asignar el valor de ok
$respuesta->ok = true;
// Devolver la respuesta
echo json_encode($respuesta);
?>
Usa el código con precaución. Más información
Explicación del código
El código es similar al código de insert, con la diferencia de que se utiliza la cláusula WHERE para especificar el ID del registro que se desea actualizar.
En el HTML, tenemos un formulario con tres campos, uno para el ID, otro para el nombre y otro para el precio. Al hacer clic en el botón "Actualizar", se envían los datos del formulario al servidor.
En el JavaScript, primero se captura el evento submit del formulario. Luego, se obtienen los valores de los campos del formulario. A continuación, se envían los datos al servidor mediante una solicitud AJAX.
En el PHP, se conecta a la base de datos y se crea la consulta SQL para actualizar el registro. Se preparan los parámetros de la consulta y se vinculan a los valores del formulario. A continuación, se ejecuta la consulta y se cierra la conexión.
Por último, se crea el objeto respuesta y se asigna el valor de ok a true. Luego, se devuelve la respuesta en formato JSON.
Este código es un ejemplo básico de cómo actualizar un registro en una base de datos MySQL con Ajax y PDO PHP.
foto de perfil
Hacer el delete por id del codigo anterior y con resp json ok
De acuerdo, aquí tienes el código de delete por ID con PDO PHP, método POST, type JSON y resp:
HTML
HTML
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Eliminar registro con Ajax</title>
</head>
<body>
<h1>Eliminar registro</h1>
<form action="" method="post">
<input type="hidden" name="id" value="1">
<input type="submit" value="Eliminar">
</form>
</body>
</html>
Usa el código con precaución. Más información
JavaScript
JavaScript
$(document).ready(function() {
// Evento submit del formulario
$("#formulario").submit(function(event) {
// Cancelar el evento nativo
event.preventDefault();
// Obtener el valor del id
var id = $("#id").val();
// Enviar los datos al servidor
$.ajax({
type: "POST",
url: "eliminar.php",
data: {
id: id
},
dataType: "json",
success: function(respuesta) {
// Si la respuesta es OK
if (respuesta.ok) {
// Mostrar mensaje de éxito
alert("Registro eliminado correctamente");
} else {
// Mostrar mensaje de error
alert("Error al eliminar el registro");
}
}
});
});
});
Usa el código con precaución. Más información
PHP
PHP
<?php
// Conectar a la base de datos
$conexion = new PDO("mysql:host=localhost;dbname=mi_base_de_datos", "root", "");
// Crear la consulta SQL
$consulta = "DELETE FROM productos WHERE id=:id";
// Preparar la consulta
$sentencia = $conexion->prepare($consulta);
// Vincular el parámetro
$sentencia->bindParam(":id", $id);
// Obtener el valor del id
$id = $_POST["id"];
// Ejecutar la consulta
$sentencia->execute();
// Cerrar la conexión
$conexion = null;
// Crear el objeto respuesta
$respuesta = new stdClass();
// Asignar el valor de ok
$respuesta->ok = true;
// Devolver la respuesta
echo json_encode($respuesta);
?>
Usa el código con precaución. Más información
Explicación del código
El código es similar al código de update, con la diferencia de que se utiliza la cláusula WHERE para especificar el ID del registro que se desea eliminar.
En el HTML, tenemos un formulario con un campo, uno para el ID. Al hacer clic en el botón "Eliminar", se envían los datos del formulario al servidor.
En el JavaScript, primero se captura el evento submit del formulario. Luego, se obtiene el valor del campo del formulario. A continuación, se envían los datos al servidor mediante una solicitud AJAX.
En el PHP, se conecta a la base de datos y se crea la consulta SQL para eliminar el registro. Se preparan los parámetros de la consulta y se vinculan a los valores del formulario. A continuación, se ejecuta la consulta y se cierra la conexión.
Por último, se crea el objeto respuesta y se asigna el valor de ok a true. Luego, se devuelve la respuesta en formato JSON.
Este código es un ejemplo básico de cómo eliminar un registro en una base de datos MySQL con Ajax y PDO PHP.
foto de perfil
Hacerme el codigo para proteger el form de ataques xss y sql injection sobre el codigo json
1
De acuerdo, aquí tienes el código para proteger el form de ataques XSS y SQL Injection sobre el código JSON:
HTML
HTML
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Insertar registro con Ajax</title>
</head>
<body>
<h1>Insertar registro</h1>
<form action="" method="post">
<input type="text" name="nombre" placeholder="Nombre">
<input type="number" name="precio" placeholder="Precio">
<input type="submit" value="Guardar">
</form>
</body>
</html>
Usa el código con precaución. Más información
JavaScript
JavaScript
$(document).ready(function() {
// Evento submit del formulario
$("#formulario").submit(function(event) {
// Cancelar el evento nativo
event.preventDefault();
// Obtener los valores del formulario
var nombre = $("#nombre").val();
var precio = $("#precio").val();
// Proteger los datos del formulario
nombre = escapeHtml(nombre);
precio = escapeHtml(precio);
// Enviar los datos al servidor
$.ajax({
type: "POST",
url: "insertar.php",
data: {
nombre: nombre,
precio: precio
},
dataType: "json",
success: function(respuesta) {
// Si la respuesta es OK
if (respuesta.ok) {
// Mostrar mensaje de éxito
alert("Registro guardado correctamente");
} else {
// Mostrar mensaje de error
alert("Error al guardar el registro");
}
}
});
});
});
// Función para escapar los datos del formulario
function escapeHtml(text) {
return text.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
}
Usa el código con precaución. Más información
PHP
PHP
<?php
// Conectar a la base de datos
$conexion = new PDO("mysql:host=localhost;dbname=mi_base_de_datos", "root", "");
// Crear la consulta SQL
$consulta = "INSERT INTO productos (nombre, precio) VALUES (:nombre, :precio)";
// Preparar la consulta
$sentencia = $conexion->prepare($consulta);
// Vincular los parámetros
$sentencia->bindParam(":nombre", $nombre);
$sentencia->bindParam(":precio", $precio);
// Obtener los valores del formulario
$nombre = $_POST["nombre"];
$precio = $_POST["precio"];
// Proteger los datos del formulario
$nombre = htmlspecialchars($nombre);
$precio = htmlspecialchars($precio);
// Ejecutar la consulta
$sentencia->execute();
// Cerrar la conexión
$conexion = null;
// Crear el objeto respuesta
$respuesta = new stdClass();
// Asignar el valor de ok
$respuesta->ok = true;
// Devolver la respuesta
echo json_encode($respuesta);
?>
Usa el código con precaución. Más información
Explicación del código
En el HTML, tenemos un formulario con dos campos, uno para el nombre y otro para el precio. Al hacer clic en el botón "Guardar", se envían los datos del formulario al servidor.
En el JavaScript, primero se captura el evento submit del formulario. Luego, se obtienen los valores de los campos del formulario. A continuación, se utilizan las funciones escapeHtml() y htmlspecialchars() para proteger los datos del formulario contra ataques XSS y SQL Injection. Por último, se envían los datos al servidor mediante una solicitud AJAX.
En el PHP, se conecta a la base de datos y se crea la consulta SQL para insertar un nuevo registro. Se preparan los parámetros de la consulta y se vinculan a los valores del formulario. A continuación, se ejecuta la consulta y se cierra la conexión.
Por último, se crea el objeto respuesta y se asigna el valor de ok a true. Luego, se devuelve la respuesta en formato JSON.
Este código es un ejemplo básico de cómo proteger un formulario contra ataques XSS y SQL Injection.
Explicación de las funciones utilizadas
`escapeHtml
Fuentes
github.com/mframirezfuentes/ApiRest
foto de perfil
Ahora proteger formulario de ataque CSRF
Ver otras versiones
1
De acuerdo, aquí tienes el código para proteger el form de ataques CSRF:
HTML
HTML
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Insertar registro con Ajax</title>
</head>
<body>
<h1>Insertar registro</h1>
<form action="" method="post">
<input type="text" name="nombre" placeholder="Nombre">
<input type="number" name="precio" placeholder="Precio">
<input type="hidden" name="csrf_token" value="<?php echo csrf_token(); ?>">
<input type="submit" value="Guardar">
</form>
</body>
</html>
Usa el código con precaución. Más información
JavaScript
JavaScript
$(document).ready(function() {
// Evento submit del formulario
$("#formulario").submit(function(event) {
// Cancelar el evento nativo
event.preventDefault();
// Obtener los valores del formulario
var nombre = $("#nombre").val();
var precio = $("#precio").val();
// Obtener el token CSRF
var csrf_token = $("#formulario").find("[name='csrf_token']").val();
// Validar el token CSRF
if (!validateCsrfToken(csrf_token)) {
alert("El token CSRF es inválido");
return false;
}
// Enviar los datos al servidor
$.ajax({
type: "POST",
url: "insertar.php",
data: {
nombre: nombre,
precio: precio
},
dataType: "json",
success: function(respuesta) {
// Si la respuesta es OK
if (respuesta.ok) {
// Mostrar mensaje de éxito
alert("Registro guardado correctamente");
} else {
// Mostrar mensaje de error
alert("Error al guardar el registro");
}
}
});
});
});
// Función para validar el token CSRF
function validateCsrfToken(token) {
// Obtener el token CSRF de la sesión
var session_token = $("#_csrf").val();
// Comparar el token CSRF del formulario con el token CSRF de la sesión
return token === session_token;
}
Usa el código con precaución. Más información
PHP
PHP
<?php
// Obtener el token CSRF de la sesión
$csrf_token = $_SESSION["_csrf"];
// Validar el token CSRF
if (!isset($_POST["csrf_token"]) || $_POST["csrf_token"] !== $csrf_token) {
// El token CSRF es inválido
echo json_encode(["ok" => false]);
exit;
}
// Crear la consulta SQL
$consulta = "INSERT INTO productos (nombre, precio) VALUES (:nombre, :precio)";
// Preparar la consulta
$sentencia = $conexion->prepare($consulta);
// Vincular los parámetros
$sentencia->bindParam(":nombre", $nombre);
$sentencia->bindParam(":precio", $precio);
// Obtener los valores del formulario
$nombre = $_POST["nombre"];
$precio = $_POST["precio"];
// Ejecutar la consulta
$sentencia->execute();
// Cerrar la conexión
$conexion = null;
// Crear el objeto respuesta
$respuesta = new stdClass();
// Asignar el valor de ok
$respuesta->ok = true;
// Devolver la respuesta
echo json_encode($respuesta);
?>
Usa el código con precaución. Más información
Explicación del código
En el HTML, tenemos un formulario con dos campos, uno para el nombre y otro para el precio. Al hacer clic en el botón "Guardar", se envían los datos del formulario al servidor.
En el JavaScript, primero se captura el evento submit del formulario. Luego, se obtienen los valores de los campos del formulario. A continuación, se obtiene el token CSRF del formulario. Por último, se valida el token CSRF. Si el token CSRF es inválido, se muestra un mensaje de error.
En el PHP, se obtiene el token CSR
Fuentes
github.com/mframirezfuentes/ApiRest
Comentarios
Publicar un comentario