Cuando quiero hacer un insert en una base de datos mysql, en el firefox me lo inserta sin problemas, pero en el internet explorer lo inserta 2 veces. He probado a poner una traza a ver si es que la funcion es llamada 2 veces, pero o no lo he logrado ver bien o en ambos casos sólo se ejecuta el insert una única vez.
También me he fijado que ocurre en todas las tablas y claro, si intento meter un nombre que sea clave, la primera vez en IE lo inserta bien, pero a continuación me lanza el error de que estoy metiendo una clave repetida porque vuelve a intentar meter el mismo valor. En tablas cuya clave es un campo autoincremental, me inserta la misma tupla 2 veces, cada una evidentemente con una clave con un número consecutivo.
La verdad es que antes he trabajado con php y mysql sin problemas. Ahora las inserciones las hago desde un método de una clase en php, que puede ser que sea la culpable del fallo.
Pongo el código de la insercción.
Primero una clase que recoge los datos, crea un objeto de tipo usuario con esos datos y ejecuta el método guardar:
Código PHP:
//se han aceptado los datos del confirma y se procede a dar de alta al autor
$nombre=$_POST['nombre'];
$apellidos=$_POST['apellidos'];
$email=$_POST['email'];
$telefono=$_POST['telefono'];
$login=$_POST['login'];
$password=$_POST['password'];
$id=$_POST['id'];
$usuario=new usuario($login, $password, $nombre, $apellidos, $email, $telefono, '3', 'Autor');
$usuario->guardar();
if($usuario->correcto==true){
$this->cargar_pagina('ok.php',null,null);
}else{
echo "error";
}
Código PHP:
function guardar(){
/* almacena el usuario en la bd */
$link = mysql_connect("localhost","") or die ("imposible conectar");
mysql_select_db("revistapfc",$link);
mysql_query("SET NAMES 'utf8'");
$result=mysql_query("INSERT INTO usuario (login, password, nombre, apellidos, email, telefono) VALUES ('$this->login','$this->password','$this->nombre','$this->apellidos','$this->email','$this->telefono')",$link);
if (!$result) {
die('Error en consulta: ' . mysql_error());
}else{
$this->correcto=true;
}
}
PD: Acabo de deshabilitar la cache de la pagina con:
Código PHP:
header( "Cache-Control: no-cache, must-revalidate" );
header("Pragma: no-cache");
¿Alguien me ayuda?