Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/05/2006, 15:05
Avatar de JAK^
JAK^
 
Fecha de Ingreso: octubre-2005
Ubicación: ^^CaMiNiTo Al CoSTaDo DeL
Mensajes: 850
Antigüedad: 14 años, 5 meses
Puntos: 4
mi humilde opinion

hola!, por el tema de la validacion es decir ke no tengas campos en blanco y esas cosas (la parte ke menos me gusta a la hora de trabajar con formus jeje), no es complicado (pero aburrido jeje), yo tengo un sistemita parecido lo hago asi. en la primera pagina muestro el formu, cuando envia paso a la sig pagina ke es de validacion en tu caso "form.php", en donde empieza la validacion de todos los campos, por ejemplo si tu formu tiene "nombre", "apellido", "telefono", "mail". deberias validar primero ke se hallan llenado todo los campos y segundo ke los campos sean validos.

ejem:

Código PHP:
 if ($_POST[txt_apell] and is_string($_POST[txt_apell])) { //compruebo ke exista el campo txt_apell ke me llega via post y a la ves ke sea tipo string
          
$_POST[txt_apell]= ucwords($_POST[txt_apell]);
      }else {
          
$error++;
        
$error_msg"$error.- Error, Apellido Invalido <br>";
          
$_POST[txt_apell]="";
      }
      if (
$_POST[txt_nom] and is_string($_POST[txt_nom])) { //lo mismo ke kon apellido
          
$_POST[txt_nom]= ucwords($_POST[txt_nom]);
      }    else {
          
$error++;
        
$error_msg .= "$error.- Error, Nombres Invalido <br>";
          
$_POST[txt_nom]="";
      }
      if (!
is_numeric($_POST[txt_tel])) { //compruebo ke sea numerico y ke exista
           
$error++;
        
$error_msg .= "$error.- Error, DNI Invalido <br>";
        
$_POST[txt_tel]="";
      }

if (!
ereg("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$",$_POST[e_mail])){ //compruebo mail con sintaxis valida
        
$error++;
        
$error_msg .= "$error.- Error, e-mail invalido <br>";
        
$_POST[e_mail]="";
      } 
de esta manera tenemos validaos nuestro campos... y vamos guardando en una variable $error_msg los mesajes de error ke se van produciendo.

luego verificamos ke no se halla producido ningun error

Código PHP:

if ($error) {
echo 
"se han producido los sig errores: <br>".$msg_error;

}else { 
//si no se produjo ningun error muestro los resultados

echo "los datos ingresados son : ".$_POST[txt_apell]."<br>".$_POST[txt_nom]."<br>".$_POST[txt_tel]."<br>".$_POST[txt_mail]."<br>";


ahora lo ke falta es mandar a una 3ra pagina los datos ya validados pra k se envie el mail
este codigo tambien va en la pagian de validacion form.php dentro del else ke dice ke no se produjeron errores

Código HTML:
<form name="form2" method="post" action="form2.php">
				    <? 
            foreach( $_POST as $key => $value ) { //esto genera un hide por kada variable ke nos llego mediante post es decir apellido, nombre,tel, mail
                echo "<input type='hidden' name='".$key."' value='".$value."'>"; 
            } 
        	
		?>
                    <div align="center">
				      <input name="Submit3" type="submit" class="Estilo90" value="Publicar">
                    </div>
                  </form> 
si apretamos publicar lo ke se hace es mandar a form2.php la info mediante post

en esta solo nos keda mandar el mail

Código PHP:

$para
="[email protected]";
$tema"Nueva registro";
$mensaje"Nueva Publicación: <br>".$_POST[txt_apell].", ".$_POST[txt_nom].", <br>".$_POST[txt_tel]."<br> mail:".$_POST[txt_mail];

@
mail ($para$tema$mensaje); 
y ahy taria ya
__________________________

ahora si keres ke el usuario antes de mandar el mail pueda corregir los datos o si le dio un error pueda volver y corregir tenes ke agregar:

para korregir el error:

Código HTML:
<form name="form1" method="post" action="pagina_del_formu.php">
                      <? 
            foreach( $_POST as $key => $value ) { 
                echo "<input type='hidden' name='".$key."' value='".$value."'>"; 
            } 
        ?> 
                      <input name="Submit" type="submit" class="Estilo90" value="volver y Corregir">
                    </form> 
este code iria dentro de el if ke verifica ke hay errores
si hay error te muestra los mensajes de error y te muestra este formu ke te da la posibilidad de volver y corregir.

esto lo ke hace es volver a la pagina donde esta el formu mandando los datos de vuelta para ke el formu aparesca lleno (los campos ke no tengan errores) y el usuario no tenga ke llenarlos, OJO tenes ke poner en cada campo del formu comovalor inicial esto

<? echo $_POST[txt_apell] ?>
<? echo $_POST[txt_nom] ?>
<? echo $_POST[txt_tel] ?>
<? echo $_POST[txt_mail] ?>

y si no se produjo error pero el usuario kiere cambiar algo lo mismo tenes ke hacer esto

dentro del else ke verifica k no hay errores poner

Código HTML:
<form name="form1" method="post" action="pagina_del_formu.php">
                      <? 
            foreach( $_POST as $key => $value ) { 
                echo "<input type='hidden' name='".$key."' value='".$value."'>"; 
            } 
        ?> 
                      <input name="Submit" type="submit" class="Estilo90" value="volver y Corregir">
                    </form> 
bueno ke es lo mismo ke el otro...

bueno kreo ke no me olvide de nada.... no se si es la manera mas eficiente de hacerlo pero es la unica ke se jajaj, si keres esperar ke te conteste los otros muchacho ke saben much0o mas ke yop es una muy sabia desicion

pero bue lo ke vale es la intencion espero ke te sirva de algo exitos!!!
__________________
hola . . .