Resulta que estoy haciendo una página web con php, tengo autores.php que tiene un formulario, el cual obtiene los datos de autores de libros. Al hacer click en el botón guardar, este ejecuta una acción a través de otro guarda_autores.php utilizando el método post. Pero resulta que al hacer click en el botón de atrás del navegador, regreso a autores.php y los datos que ingresé al formulario siguen alli, quisiera que se borraran, he investigado todo el dia en internet, y no encuentro a nadie que diga de manera clara como lo hizo. Solo he visto muchas posibles soluciones utilizando sesiones y variables de sesión, redireccionamiento de header, body unload, configurar la sección meta para que no guarde caché, hacer unload a las variables post, en fin, todo un enredijo. Si les sirve, les muestro el código fuente que estoy utilizando.
Código:
<html>
<head>
<title> Autores </title>
<script type="text/javascript" src="../JavaScript/botones_autor.js"></script>
</head>
<body>
<form id="form_autores" name="form_autores" method="post" action="">
<p>
<label for="ID_autor">Codigo de autor</label>
<input type="text" name="ID_autor" id="ID_autor" />
</p>
<p>
<label for="Nombre">Nombre y Apellido</label>
<input type="text" name="Nombre_y_apellido" id="Nombre_y_apellido" />
</p>
<p>
<label for="Pais_de_origen">Pais de origen</label>
<input type="text" name="Pais_de_origen" id="Pais_de_origen" />
</p>
<p> </p>
<p>
<label for="Guardar"></label>
</p>
</form>
<input type="submit" name="Guardar" id="Guardar" value="Guardar" />
<input type="submit" name="ver_autor" id="ver_autor" value="Ver Autores" />
</body>
</html>
Ahora el código del php
<?php
session_start();
if (empty($_POST['Nombre_y_apellido']) || empty($_POST['Pais_de_origen'])
|| empty($_POST['ID_autor']))
{
echo "<script>alert('Todos los campos son obligatorios')</script>";
}
else
{
$codigo_autor = $_POST[ID_autor];
$Nombre_y_apellido = $_POST[Nombre_y_apellido];
$Pais_de_origen = $_POST[Pais_de_origen];
$_SESSION["codigo_autor"];
$_SESSION["Nombre_y_apellido"];
$_SESSION["Pais_de_origen"];
$db = mysql_connect('localhost','root','contraseña');
if (mysqli_connect_errno())
{
echo "<h3>Error, no se pudo conectar con la base de datos intente más tarde</h3>";
exit;
}
mysql_select_db("libreria",$db);
$consulta = "INSERT INTO autor VALUES('$codigo_autor','$Nombre_y_apellido','$Pais_de_origen')";
mysql_query($consulta,$db);
$my_error = mysql_error($db);
if(!empty($my_error))
{
echo "Ha habido un error al insertar los valores. $my_error";
}
else
{
echo "Se ha añadido el autor correctamente";
mysql_close();
UNSET($_SESSION["codigo_autor"]);
UNSET($_SESSION["Nombre_y_apellido"]);
UNSET($_SESSION["Pais_de_origen"]);
session_destroy();
header('location: ../HTML/autoreshtml.php');
}
}
?>
P.D. Como tengo el formulario con 2 botones, le asigno a cada uno su action con el evento onclick con un javascript, por eso es que el formulario en si, no tiene un action definido, sino acion = "".
De antemano, les agradezco mucho