14/12/2009, 07:05
|
| | | 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 |