Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/11/2009, 01:25
Maestro_kanelo
 
Fecha de Ingreso: marzo-2006
Mensajes: 133
Antigüedad: 18 años, 1 mes
Puntos: 6
Duda con formulario php

Estoy haciendo un formulario en php y se me ha planteado un problema, cuando el usuario por ejemplo no inserta su nombre el formulario me da un error y me dice que inserte el nombre, el problema es que quiero que los datos ya introducidos anteriormente por el usuario sigan estando y no se me borren de manera que unicamente tenga que introducir de nuevo el usuario los datos incorrectos...

No se si me explique muy bien.

Os pego el codigo para que os hagais una idea de lo que tengo:

Tengo por una parte el archivo registro.php con el formulario de la siguiente forma:

<form action="registro/validar.php" method="post" name="registro">


Y ahora tengo el archivo validar que contiene lo siguiente:

<? session_start();

include "conexionBD.php";

$nombre = $_POST['Nombre'];
$apellidos = $_POST['apellidos'];
$dni = $_POST['dni'];
$direccion = $_POST['direccion'];
$email = $_POST['email'];
$contrasena = $_POST['contrasena'];
$poblacion = $_POST['poblacion'];
$provincia = $_POST['provincia'];
$codpostal = $_POST['codpostal'];
$nick = $_POST['nick'];
$sexo = $_POST['sexo'];
$telefono = $_POST['telefono'];
$captcha = $_POST['caracteres'];
$fechaalta = date("Y-m-d");

if ($nombre == "")
{
header("Location: ../registro.php?errorusuario=si");
}
elseif ($apellidos == "")
{
header("Location: ../registro.php?errorusuario1=si");
}
elseif ($direccion == "")
{
header("Location: ../registro.php?errorusuario3=si");
}
elseif ($email == "")
{
header("Location: ../registro.php?errorusuario4=si");
}
elseif ($confirma_email == "")
{
header("Location: ../registro.php?errorusuario5=si");
}
elseif ($email != $confirma_email)
{
header("Location: ../registro.php?errorusuario6=si");
}
elseif ($contrasena == "")
{
header("Location: ../registro.php?errorusuario7=si");
}
elseif ($confirma_contrasena == "")
{
header("Location: ../registro.php?errorusuario8=si");
}
elseif ($contrasena != $confirma_contrasena)
{
header("Location: ../registro.php?errorusuario9=si");
}
elseif ($poblacion == "")
{
header("Location: ../registro.php?errorusuario10=si");
}
elseif ($provincia == "")
{
header("Location: ../registro.php?errorusuario11=si");
}
elseif ($nick == "")
{
header("Location: ../registro.php?errorusuario2=si");
}
elseif ($pais == "")
{
header("Location: ../registro.php?errorusuario12=si");
}


elseif ($_SESSION['tmptxt'] == $captcha) {

$conexion = mysql_connect($localhost,$usuario,$contrasena);
mysql_select_db($bd,$conexion);

// Con esta sentencia SQL insertaremos los datos en la base de datos
mysql_query("INSERT INTO `usuario` ( `nombre`, `apellidos`, `dni`, `direccion`, `email`, `contrasena`, `poblacion`, `provincia`, `codpostal`, `nick`, `sexo`, `telefono`, `caracteres`, `Fechaalta`) VALUES
('$nombre', '$apellidos' , '$dni', '$direccion', '$email', NULL, NULL, '$contrasena', NULL, '$poblacion', '$provincia', NULL, '$codpostal', '$nick' , '$sexo' ,'$telefono' ,'$caracteres' ,'$fechaalta' , NULL, NULL);",$conexion);

// Ahora comprobaremos que todo ha ido correctamente
$my_error = mysql_error($conexion);

if(!empty($my_error))
{
echo "Ha habido un error al insertar los valores. $my_error";
}else {
echo "Los datos han sido introducidos satisfactoriamente en la base de datos.";
}


} else {
header("Location: ../registro.php?errorusuario13=si");
}



?>



Error de usuario lo estoy definiendo en registro.php de la siguiente forma:


<? if ($_GET["errorusuario1"]=="si") {?>

<span class="Estilo39">Introduzca sus apellidos</span><br />

<?}?>




Imagino que no sera la forma mas correcta de hacer esto, es la primera vez que programo en php, pero lo intento, ahora lo que me hace falta es saber que tengo que hacer para que cuando me de uno de los mensajes de error no borre el texto del formulario que ya haya introducido el usuario.

Muchas gracias les agradeceria mucho su ayuda.