Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/08/2011, 09:54
Avatar de vgonga1986
vgonga1986
 
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Para crear una ventana..

Te doy la pista, estás hablando de validación de formularios.

La validación puede hacerse en dos momentos, según si quieres hacerlo en cliente o en servidor.

Para hacerlo en cliente necesitas JavaScript y este lenguage tiene una función precisamente para hacer lo que tú quieres, que se llama alert(). la cosa sería más o menos así:
Código Javascript:
Ver original
  1. function validateForm() {
  2.     // sacas valor
  3.     var campo = document.forms["nombre_del_form"]["campo"].value;
  4.  
  5.     var err = false;
  6.     var message = "Se han producido los siguientes errores:\n";
  7.    
  8.     // compruebas lo que quieras sobre ese valor (por ejemplo, que esté vacío)
  9.     if (...) {
  10.         message += "Campo campo no pasa la validación";
  11.         err = true;
  12.     }
  13.     // aquí puedes añadir tantas validaciones como quieras.
  14.    
  15.     // si hay error, lo imprimimos y devolvemos false. Si no, devolvemos true
  16.     if (err) {
  17.         alert(message);
  18.         return false;
  19.     } else {
  20.         return true;
  21.     }
  22. }

Para hacer la validación en PHP la idea es la misma pero con matices:
Código PHP:
Ver original
  1. function ValidateForm() {
  2.     // sacas valor
  3.     $campo= $_POST['campo'];
  4.  
  5.     $err = false;
  6.     $message = "Se han producido los siguientes errores:<br/>";
  7.  
  8.     // compruebas lo que quieras sobre ese valor (por ejemplo, que esté vacío)
  9.     if (...) {
  10.         $err = true;
  11.         $message .= "Campo campo no pasa la validación<br/>";
  12.     }
  13.     // aquí puedes añadir tantas validaciones como quieras.
  14.    
  15.     // si existe error, devolvemos el mensaje. Y si no, devolvemos true.
  16.     if ($err) {
  17.         return $message;
  18.     } else {
  19.         return true;
  20.     }
  21. }

La forma de llamar también es diferente. Para JavaScript se hace desde onsubmit del form:
Código HTML:
Ver original
  1. <form name="nombre_del_form" action="loquesea" onsubmit="return validateForm()" method="post">

Sin embargo, la validación desde PHP se hace en servidor. En el código de recepción del formulario tendrás que hacer:
Código PHP:
Ver original
  1. if ($message = ValidateForm()) {
  2.     // Aquí todo ha ido bien
  3. } else {
  4.     // Aquí no se ha pasado alguna validación y en $message tienes un mensaje que te dice qué ha pasado.
  5. }

Por último, tienes que saber que es bueno hacer validación tanto en cliente (JS) como en servidor (PHP). Por qué? Sencillo, si la haces sólo en servidor estás enviando mensajes de más, ya que envías el form, PHP te dice que no está bien y vuelves al principio, hay un trasiego de datos que te puedes ahorrar, ya que si está validado con JS no se envía el mensaje al servidor. Si lo validas sólo con JavaScript tienes un problema, algunos navegadores (por ejemplo, Firefox) permiten quitar JavaScript, por lo que te podrían enviar datos erróneos queriendo y joderte la aplicación.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?