Lenguajes
Web/Otros
Extra
Enlaces

Procesar un formulario mediante PHP e insertar el registro en MySQL

Algo muy común en el desarrollo de aplicaciones web es la capacidad de insertar contenidos en un formulario y pasarlos directamente a la base de datos para su posterior uso. Registro de usuarios, inserción de contenidos, noticias, etc.

El atributo del formulario que hagamos tiene que apuntar al script que procesará la información y en este caso el método que usamos es POST (method="post"). Así sería un posible formulario:

<form name="holamundo" action="insertar_datos.php" method="post">
Título: <input type="text" name="titulo"><br>
Contenido: <textarea name="contenido"></textarea><br>
<input type="enviar" value="Enviar">
</form>

Ahora en el archivo "insertar_datos.php" vamos a recoger estos datos e insertarlos en nuestra base de datos. Suponemos que tenemos una tabla en la base de datos, llamada "noticias" que tiene los campos "titulo" y "contenido". Miraremos si realmente se han introducido datos en el formulario y si es así, insertaremos los valores en la base de datos.

<?php

// Primero comprobamos que ningún campo esté vacío y que todos los campos existan.
if(isset($_POST['titulo']) && !empty($_POST['titulo']) &&
isset($_POST['contenido']) && !empty($_POST['contenido'])) {

// Si entramos es que todo se ha realizado correctamente

$link = mysql_connect("localhost","usuario","contraseña");
mysql_select_db("nombredb",$link);

// Con esta sentencia SQL insertaremos los datos en la base de datos
mysql_query("INSERT INTO noticias (titulo,contenido)
VALUES ('{$_POST['titulo']}','{$_POST['contenido']}')",$link);

// Ahora comprobaremos que todo ha ido correctamente
$my_error = mysql_error($link);

if(!empty($my_error) {

echo "Ha habido un error al insertar los valores. $my_error";

} else {

echo "Los datos han sido introducidos satisfactoriamente";

}

} else {

echo "Error, no ha introducido todos los datos";

}

?>

Esta es luna forma bastante simple de insertar datos en una base de datos MySQL. Podemos seguir este esquema para procesar formularios más complejos. Una mejora imprescindible en este código es escapar los contenidos que insertemos. Si nuestro servidor no tiene activadas las magic_quotes, para evitar una inyección SQL tendremos que escapar los valores que insertemos en la sentencia SQL. Podemos usar la función mysql_real_escape_string.

$titulo = mysql_real_escape_string($_POST['titulo']);

Y luego usamos la variable $titulo en la sentencia.


Redactado por Nenillo

Inicio | Contacta

Noticias en RSS2 XHTML Vlido CSS Vlido