Código PHP:
<?php
// Esta función ejecuta la consulta SQL
function query($query)
{
$link = mysql_connect('localhost','user','pass');
mysql_select_db('db', $link);
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER_SET utf8");
$query = mysql_query($query, $link) or die("DB error: ".mysql_error());
return $query;
mysql_close($link);
}
// Esta función es la encargada de purgar las variables antes de entrarlas en la DB.
function escape($string)
{
$link = mysql_connect('localhost','user','pass');
mysql_select_db('db', $link);
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER_SET utf8");
$string = mysql_real_escape_string($string);
return $string;
mysql_close($link);
}
// Esta es la función que se encarga de realizar el proceso para insertar la categoría en la base de datos.
function add_category($cat_name)
{
$cat_name = escape($cat_name);
$cat = "INSERT INTO categorias (category_name) VALUES ('".$cat_name."');";
query($cat);
?>
<div class="done">
Completado
</div>
<?php
}
// Este es un fragmento de código del formulario, si lo pegara todo sería muy extenso.
?>
<form method="post" action="test.php">
<div class="new_cat">
Añadir categoria: <input type="text" name="category_name" size="30" maxlength="64" /> <input type="submit" value="añadir" />
</div>
<?php
if (!empty($_POST["category_name"]))
{
add_category($_POST["category_name"]);
}
?>
</form>
El problema, es que se inserta dos veces el mismo código y, lo peor de todo es que una vez insertado, cuando abandono la página, inserta una tercera línea con el mismo texto.
¿Qué estoy haciendo mal?
Saludos y muchas gracias