Foros del Web » Programando para Internet » PHP »

misterioso problema con el header

Estas en el tema de misterioso problema con el header en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 14/12/2009, 07:05
Avatar de 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
  #2 (permalink)  
Antiguo 14/12/2009, 07:44
 
Fecha de Ingreso: marzo-2006
Mensajes: 44
Antigüedad: 18 años, 7 meses
Puntos: 4
Respuesta: misterioso problema con el header

Prueba a poner después del header
Código PHP:
exit; 
para detener la ejecución del script.

Saludos
  #3 (permalink)  
Antiguo 14/12/2009, 08:00
Avatar de JOSANCIN  
Fecha de Ingreso: septiembre-2008
Ubicación: huesca
Mensajes: 298
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: misterioso problema con el header

Hola David
Lo pongo despues del primer header y funciona, genial, no sabes el favor que me has hecho
muchas gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:24.