Foros del Web » Programando para Internet » PHP »

Validacion de info en formulario....!

Estas en el tema de Validacion de info en formulario....! en el foro de PHP en Foros del Web. Tengo este code en una pagina contactanos.php .. <? function sendMail($from,$subject,$body){ $headers = "From: $from\n"; mail("[email protected]",$subject,$body,$heade rs); } if (isset($_POST["btn_enviar"])){ $from=$_POST["from"]; $nombre=$_POST["nombre"]; $mensaje=$_POST["mensaje"]; $body = ...
  #1 (permalink)  
Antiguo 22/10/2004, 02:01
Avatar de pulento  
Fecha de Ingreso: noviembre-2002
Ubicación: En un pequeño, helado, obscuro reino... llamado Dinamarca.
Mensajes: 1.852
Antigüedad: 22 años
Puntos: 1
Validacion de info en formulario....!

Tengo este code en una pagina contactanos.php ..

<?
function sendMail($from,$subject,$body){
$headers = "From: $from\n";
mail("[email protected]",$subject,$body,$heade rs);
}
if (isset($_POST["btn_enviar"])){
$from=$_POST["from"];
$nombre=$_POST["nombre"];
$mensaje=$_POST["mensaje"];
$body = "Navn ...: ".$nombre." \n\n e-mail ..: ".$from."\n\n Sender besked..: ".$mensaje;
sendMail($from,$nombre,$body);
}else{}
?>


Y en la misma pagina tengo un formulario. donde llamo a la misma pagina luego q la info ha sido enviada.

<FORM name = "formulario" ACTION="contactanos.php" METHOD="POST" >

-code
-code
<INPUT name="btn_enviar" TYPE="submit" VALUE="Enviar" onClick= "valida(formulario)">


Luego valido que la info sea correcta con este script q tengo en la misma pagina.

<script language="javascript">
function valida(form){
if (form.nombre.value=="" || form.mensaje.value=="" || form.from.value.indexOf('@',0)==-1){r=0;alert("Faltan datos por llenar ...!");return false;}
else { alert ("Tu mensaje ha sido enviado, gracias por contactarte con Flotdesign ");return true; }
}
//---->

</script>

Pero me envia la info sin validar siempre .... Cual es el problema..?


Salu2
__________________
http://www.flotdesign.dk/

Última edición por pulento; 22/10/2004 a las 02:07
  #2 (permalink)  
Antiguo 22/10/2004, 02:19
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 1 mes
Puntos: 41
Y esa función de JavaScript cómo la llamas?... se supone que debas tener un botón que llame a la función valida("formulario") y si todo está Ok.. haga el submit... si no... te muestre el alert que faltan datos.

Pero eso lo resuelves en el foro de JavaScript (seguro encontrarás otros varios posts con la misma duda)...

Desde PHP puedes hacer otra validación en el servidor:
Código PHP:
<?php
// Si hay algún mensaje de error, se muestra
if(!empty($_GET['error'])){
  echo 
"<script>alert('no se pudo enviar el mensaje. Datos incompletos')</script>";
}
function 
sendMail($from,$subject,$body){
$headers "From: $from\n";
mail("[email protected]",$subject,$body,$headers);
}
// Si venimos de llenar el formulario
if (isset($_POST["btn_enviar"])){
  
//Si falta algún campo
  
if(empty($_POST['from']) || empty($_POST['nombre']) || empty($_POST('mensaje'))){
     
// Redireccionamos a la misma página, pero con un mensaje de error
     
header("Loaction : contactanos.php?error=0");
  }else{
     
// Si no falta nada
     
$from=$_POST["from"];
     
$nombre=$_POST["nombre"];
     
$mensaje=$_POST["mensaje"];
     
$body "Navn ...: ".$nombre." \n\n e-mail ..: ".$from."\n\n Sender besked..: ".$mensaje;
     
sendMail($from,$nombre,$body);
  }
}else{}
?>
Ojalá entiendas la idea. Igual, lo mejor es que busques en el foro de JavaScript

Saludos

Última edición por jpinedo; 22/10/2004 a las 02:22
  #3 (permalink)  
Antiguo 22/10/2004, 09:00
Avatar de pulento  
Fecha de Ingreso: noviembre-2002
Ubicación: En un pequeño, helado, obscuro reino... llamado Dinamarca.
Mensajes: 1.852
Antigüedad: 22 años
Puntos: 1
Gracias por la pronta respuesta.


Lo probare..



Salu2
__________________
http://www.flotdesign.dk/
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 21:21.