Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/12/2009, 07:05
Avatar de JOSANCIN
JOSANCIN
 
Fecha de Ingreso: septiembre-2008
Ubicación: huesca
Mensajes: 298
Antigüedad: 16 años, 2 meses
Puntos: 0
misterioso problema con el header

hola a todos

tengo un problema que quizas es sencillo pero no lo veo:

tengo un formulario en un script que se llama formulario.php que envia el nombre y el dni a otro script que se llama procesar php.
En formulario.php se muestra un mensaje de error en caso de que el registro que envio esta duplicado

formulario.php:

<form method="POST" action="procesar.php">
<input type="text" name="nombre">
<input type="text" name="dni">
<input type="submit" value="procesar">
</form>

<?php

if (isset($_GET['x'])){

echo "<div id='aviso'>";
if ($_GET['x']==1){
echo "<b>"."los datos se han insertado correctamente"."</b>";
}

if ($_GET['x']==3){
echo "registro duplicado";
}

echo "</div>";
}

?>

Procesar.php:
(Se recogen las variables y se comparan con todos los registros de una tabla, si son iguales el nombre y dni que algun registro se vuelve a formulario.php mostrando un mensaje de error, si no coinciden con algun registro se inserta el valor en la tabla y aparece tambien un mensaje de confirmacion)

El script es el siguiente:

despues de abrir y conectar con la base de datos que contiene la tabla encuesta hago:

if (isset($_POST['nombre'] && $_POST['nombre']!="" && isset($_POST['dni'] && $_POST['dni']!="){

$nombre=$_POST['nombre'];
$dni=$_POST['dni'];

$resultado=mysql_query("select * from encuesta");
while($fila=mysql_fetch_array ($resultado)){

if ($fila['nombre']==$nombre && $fila['dni']==$dni){
header("Location:formulario.php?x=3");

}

}

$tabla="encuesta";
$a="INSERT INTO $tabla(id,dni)
values ('','$nombre','$dni')";
mysql_query($a);

header("Location:index.php?x=3");


}




El problema es el siguiente, si no pongo el header("Location:formulario.php?x=3") que vuelve a ; me funciona perfectamente, pero si lo pongo no distingue los registros duplicados insertando cualquier registros

Agradeceria alguna ayuda

Que vaya bien