Foros del Web » Programando para Internet » PHP »

COmo puedo hacer esto?

Estas en el tema de COmo puedo hacer esto? en el foro de PHP en Foros del Web. Estoy tratando de validar los campos de firma de un formulario para que los usuarios no lo dejen en blanco mediante PHP. Hasta ahora la ...
  #1 (permalink)  
Antiguo 09/01/2004, 21:09
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
COmo puedo hacer esto?

Estoy tratando de validar los campos de firma de un formulario para que los usuarios no lo dejen en blanco mediante PHP. Hasta ahora la parte de PHP me funciona pues cuando no me entran los datos de forma correcta el me redirecciona de esta manera http://localhost:3000/rpmsite/index....r&error=noname pero el unico problema que me surge es que me limpia los campos que ya el usuario habia introducido correctamente lo que hace que si el usuario se equivoca escribiendo algunas cosas entonces tendría que hacerlo todo de nuevo y esto es un poco engorroso.

Me sugieren alguna idea.
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 09/01/2004, 21:58
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 14 años, 5 meses
Puntos: 0
javascript

Usa validación de formularios mediante javascript con retorno de carro a donde falta el valor por llenar.

una buena pagina de referencia es:

http://javascript.internet.com/ (seccion Forms)

el link que colocaste de localhost es erroneo ya que al abrirlo busca es en nuestra maquina o pc esa dirección a la prox coloca tu ip o direccion del server donde estas trabajando.


Saludos

  #3 (permalink)  
Antiguo 09/01/2004, 22:30
Avatar de Mike1304  
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 14 años
Puntos: 0
una excelente validador para PHP - Javascript es
http://www.x-code.com/vdaemon_web_form_validation.php

se los recomiendo a todos.. super facil y emplea un metodo muy versatil

si usas Dreamweaver puedes comprar la extension y mejorar la rapidez del desarrollo de una pagina con muchas validadaciones


esta opcion nos ayuda en el caso de validacion sea en el cliente
Ejemplo (campo en blanco, formato, etc) pero si la validacion es despues del POST del formulario es decir que la validacion se ejecuta en el servidor... entonces si ocurre lo que dice Reynier (os campos se blanquean)
Ejemplo al crear un usuario quieres validar si el usuario ya existe tienes que consultar del lado del servidor y si ya existe entonces te redirecciona a la misma pagina... pero llegan los campos todos vacios!!!...

en pocas palabras tengo la solucion a medias... porque tambien me sucede lo que le sucede a Reynier
  #4 (permalink)  
Antiguo 10/01/2004, 14:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno .. yo uso sesiones para todo eso (en la validación "servidor" vía PHP)

formulario.php
Código PHP:
<?
session_start
();

// Mostrar errores si los hay (mensajes)
if (isset($_SESSION['error'])){
    echo 
$_SESSION['error'];
}

// Recoger variable sesión con las variables que se enviaron..
if (isset($_SESSION['formulario'])){
$form=$_SESSION['formulario'];
}
<
form action="procesar.php" action="post">
<
input type="text" name="nose" value="<? echo $form['nose'] ?>">

etc formulario .. campos y botón submit ..
</
form>
?>
Se usan las opciones "value" de los input para darle un valor predefinido si hay error al validar.

procesar.php
Código PHP:
<?
session_start
();
// Registro el array POST entero en una variable de sesión
$_SESSION['formulario']=$_POST;

// Valido mis variables del formulario .. 

// proceso si corresponde ..
// else
// si hay error .. redirecciono al formulario .. En la sesión ya tengo mis variables que envié. Ademas . uso la misma sesión para propagar el código de error:
$_SESSION['error']="blabla";
header ("Location: formulario.php");
exit;
?>
Y .. eso es todo .. Lo mismo se podría hacer por cookies y propagando todas las variables por el URL .. pero en una sesión como verán se hace todo comodamente.

Esto no quita que opcionalmente se validen los datos vía cliente en javascript. Pero, nunca hay que olvidarse de validar en última instancia en el Servidor.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 10/01/2004 a las 14:33
  #5 (permalink)  
Antiguo 10/01/2004, 14:46
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Sin usar sesiones, lo que podrias hacer seria que el action del form sea el mismo script que muestra el formulario. Al comienzo del script, validas los datos enviados por el formulario, en caso de ser validos los procesas y redireccionas a la pagina final, y si no son validos, muestras de nuevo el formulario con los valores anteriores (y los mensajes de error y demas).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 10/01/2004, 16:17
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Ese es el problema

La parte de la validación ya la he hecho pero lo que no se hacer es como redireccionar a el formulario anterior y mantener los datos que estaban en este.
__________________
Ing. Reynier Pérez Mira
  #7 (permalink)  
Antiguo 10/01/2004, 16:21
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 14 años, 5 meses
Puntos: 2
Cita:
Mensaje Original por josemi
Hola,

Sin usar sesiones, lo que podrias hacer seria que el action del form sea el mismo script que muestra el formulario. Al comienzo del script, validas los datos enviados por el formulario, en caso de ser validos los procesas y redireccionas a la pagina final, y si no son validos, muestras de nuevo el formulario con los valores anteriores (y los mensajes de error y demas).

Saludos.

valida todo en tu mismo formulario, no te compliques la vida

ejemplo si tu formulario se llama form.php

validalo en form.php

entiendes lee lo que dice josemi
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #8 (permalink)  
Antiguo 10/01/2004, 17:59
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Re: Ese es el problema

Cita:
Mensaje Original por Reynier
La parte de la validación ya la he hecho pero lo que no se hacer es como redireccionar a el formulario anterior y mantener los datos que estaban en este.
Es que no es redireccionar si esta mal, es redireccionar si esta bien. Algo como:
Código PHP:
<?php
if (isset($_POST['Enviar'])) {
  
// se ha enviado el formulario
  
if (true==validar()) {
    
// todo correcto
    
mysql_query("INSERT ...");
   
// o lo que sea el proceso del formulario
   // y ahora redireccionamos a la pagina final
    
header("Location: gracias.php");
    exit;
  } 
// del validar()
}
// aqui llegamos en 2 casos: no se estaba enviando el formulario o ha fallado la validacion

// mostramos el formulario
?>
<form name="formu" action="" method="POST">
nombre: <input type="text" name="nombre" value="<?php echo @$_POST['nombre']; ?>">
Usamos la @ para que no salga mensajes de "indice no definido" (seria preferible organizar mejor el script para no necesitar la @, pero esto es simplemente un ejemplo, no un codigo de produccion).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 11:02.