Foros del Web » Programando para Internet » PHP »

formularios estilizados

Estas en el tema de formularios estilizados en el foro de PHP en Foros del Web. buenas llevo poco con php y bueno despues de realizar unas comprobaciones sencillas.. me gustaria que el formulario se volviera a imprimir con los errores ...
  #1 (permalink)  
Antiguo 15/07/2010, 03:11
 
Fecha de Ingreso: enero-2009
Mensajes: 40
Antigüedad: 15 años, 10 meses
Puntos: 0
formularios estilizados

buenas llevo poco con php y bueno despues de realizar unas comprobaciones sencillas.. me gustaria que el formulario se volviera a imprimir con los errores al lado de cada input en vez de imprimir el error en una pagina en blanco y nose como empezar la verdad lo unico que se me ocurre es hacer un contador de errores y guardarlos en variables para volver a imprimir el formu de esta forma mas o menos...

<input type="text" name="nombre"> <?php echo ("$errores"); ?>

esto seria correcto? como deberia hacerlo sino?

<?php
if(!$_POST){
?>
<html>
<form action="login2.php" method="post">
Nombre <input type=text name="nombre">
Apellidos <input type="text" name="apellidos">
Password <input type="password" name="pass1">
Confirma password <input type="password" name="pass2">
<input type="submit" value="enviar">
</form>
</html>

<?php
}else{
$nombre = $_POST['nombre'];
$apellidos = $_POST['apellidos'];
$pass1= $_POST['pass1'];
$pass2= $_POST['pass2'];

if(($nombre)==""){echo("El campo nombre no puede estar vacio");}
else {if(strlen($nombre)<3||strlen($nombre>12))
{ echo("El nombre debe tener entre 3 y 12 caracteres");}
elseif(preg_match("/[0-9]/", $nombre))
{echo("En el campo nombre no se puede usar numeración");}
}


if(($apellidos)=="")
{echo("El campo apellidos no pude estar vacio");}
elseif(preg_match("/[0-9]/", $apellidos))
{echo("En el campo apellidos no se puede usar numeración");}

if(($pass1)==""){ echo ("Los campos password no pueden estar vacios");}
elseif(($pass1)!==($pass2)){ echo ("Los campos password deben coincidir.");}
else{ echo("te has registrado correctamente");}
}



?>
  #2 (permalink)  
Antiguo 15/07/2010, 03:29
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 4 meses
Puntos: 165
Respuesta: formularios estilizados

Puedes hacer la validación de los campos, y por cada campo crear un mensaje de error en caso de que no esté validado.

Puedes guardar este mensaje en una variable como $nombre_error, o en un array(), con un índice por nombre. ( por ejemplo )

Despúes en caso de que no cumpla esa validación ( lo comprobarás haciendo un count del array, por ejemplo ), le dices que si existe $errores['campo'] lo imprimes, si no no.

Espero haberte ayudado!!

Un saludo!
  #3 (permalink)  
Antiguo 15/07/2010, 03:48
 
Fecha de Ingreso: enero-2009
Mensajes: 40
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: formularios estilizados

no controlo mucho de arrays la verdad pero mas o menos entiendo lo que quieres decir me leere bien el tema a ver si consigo hacerlo gracias.
  #4 (permalink)  
Antiguo 15/07/2010, 04:26
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 4 meses
Puntos: 165
Respuesta: formularios estilizados

Hola,

Es bastante sencillo, ya lo veras.

Por ejemplo:

Código PHP:
$errores = array("campo" => "Mail""mensaje" => "Debe contener una dirección de correo electrónico válida."); 
http://php.net/manual/es/language.types.array.php

Un saludo!!
  #5 (permalink)  
Antiguo 15/07/2010, 08:44
 
Fecha de Ingreso: enero-2009
Mensajes: 40
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: formularios estilizados

he probado este codigo sencillo pero me da error en la linea :

if($count=="0"){echo("todo esta ok");}

Parse error: syntax error, unexpected T_IF in C:\AppServ\www\login3.php on line 19

seria correcta esta estructura?





<?
if($_POST){
?>
<html>
<form action="login3.php" method="post">
Nombre <input type=text name="nombre">
<input type="submit" value="enviar">
</form>
</html>

<?php
}else{
$nombre = $_POST['nombre'];
$errores=array();

if(($nombre)==""){$errores[errno1]="Este campo no puede estar vacio";}
$count=count($errores)
if(count=="0"){echo("todo esta ok");

}
else{ ?>

<form action="login3.php" method="post">
Nombre <input type="text" name="nombre"> <? echo ("$errores[errorno1]"); ?>
<input type="submit" value="enviar">
</form>

<?



?>
  #6 (permalink)  
Antiguo 15/07/2010, 10:40
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 4 meses
Puntos: 165
Respuesta: formularios estilizados

los errores deverias aprender a corregirlos solo, aprenderás mucho más...

A base de programar te irás dando cuenta de que es sencillo.

No me he revisado todo el código pero he visto...

$count = etc le falta ;

también he visto que usas if ($_POST), mi consejo es que uses el nombre del botón ( $_POST['nombre-botón'] ) con el cual envías, ya que por nombre de campo si no se rellena no existe y $_POST a secas--- que pasa si hay más de un formulario?

Otra cosa, acostúmbrate a ordenar / indexar el código, es mucho más fácil de leer, encontrar errores, mejorar por otros, etc.

Un saludo!

Etiquetas: formulario
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 13:05.