Foros del Web » Programando para Internet » PHP »

Problema al validar form

Estas en el tema de Problema al validar form en el foro de PHP en Foros del Web. Hola, tengo un problema con validar el formulario, agregue un if para que me de un error en otra pagina "completetodo.html" el problema es que ...
  #1 (permalink)  
Antiguo 14/07/2014, 22:07
Avatar de ferwall  
Fecha de Ingreso: abril-2010
Mensajes: 57
Antigüedad: 14 años
Puntos: 3
Problema al validar form

Hola, tengo un problema con validar el formulario, agregue un if para que me de un error en otra pagina "completetodo.html" el problema es que al agregar el if donde sea que lo ponga, cada vez que completo el form aunque lo complete bien me lleva a la pagina completetodo.html, me anula el envio del formulario. Alguien sabe donde debería colocar dicho if? o de que otra forma debería colocarlo? esta marcado con un comentario en el código. Gracias

Código PHP:
<?php
$nombre
=$_POST['nombre'];
$nombreempresa=$_POST['nombreempresa'];
$correo=$_POST['correo'];
$direccion=$_POST['direccion'];
$telefono=$_POST['telefono'];
$celular=$_POST['celular'];
$comentarios=$_POST['comentarios'];
$opcion=""
foreach (
$_POST['opcion'] as $casilla){ 
$opcion.=$casilla.", "
}
$proveedisenio=""
foreach (
$_POST['radio0'] as $radio0){ 
$proveedisenio.=$radio0.", "
}
$comentarios1=$_POST['comentarios1'];
$comentarios2=$_POST['comentarios2'];
$comentarios3=$_POST['comentarios3'];
$publicacupon=""
foreach (
$_POST['radio1'] as $radio1){ 
$publicacupon.=$radio1.", "
}
//este es el if para validar el form
if ($nombre == "" or $nombreempresa == "" or $telefono == "" or $direcion == "" or $correo == "" or $celular== ""

header("Location: completetodo.html"); 

else {
function 
form_mail($sPara$sAsunto$sTexto$sDe)
{
$bHayFicheros 0
$sCabeceraTexto ""
$sAdjuntos "";

if (
$sDe)$sCabeceras "From:".$sDe."\n"
else 
$sCabeceras ""
$sCabeceras .= "MIME-version: 1.0\n"
foreach (
$_POST as $sNombre => $sValor
$sTexto $sTexto."\n".$sNombre." = ".$sValor;

foreach (
$_FILES as $vAdjunto)

if (
$bHayFicheros == 0)

$bHayFicheros 1
$sCabeceras .= "Content-type: multipart/mixed;"
$sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";

$sCabeceraTexto "----_Separador-de-mensajes_--\n"
$sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n"
$sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";

$sTexto $sCabeceraTexto.$sTexto

if (
$vAdjunto["size"] > 0)

$sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n"
$sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";; 
$sAdjuntos .= "Content-Transfer-Encoding: BASE64\n"
$sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";

$oFichero fopen($vAdjunto["tmp_name"], 'r'); 
$sContenido fread($oFicherofilesize($vAdjunto["tmp_name"])); 
$sAdjuntos .= chunk_split(base64_encode($sContenido)); 
fclose($oFichero); 

}
if (
$bHayFicheros
$sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n"
return(
mail($sPara$sAsunto$sTexto$sCabeceras)); 
}

if (
form_mail("[email protected]"$_POST[asunto],
"Los datos introducidos en el formulario son:\n\n"$_POST[email])) 

if (
form_mail("[email protected]"$_POST[asunto],
"Los datos introducidos en el formulario son:\n\n"$_POST[email]))
header ("Location: gracias.html");
}
//aca cierro el if para validar
?>
  #2 (permalink)  
Antiguo 14/07/2014, 23:32
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: Problema al validar form

En el if indicas si algún campo se encuentra vacio o sin rellenar te envia a completetodo.html, si no, no.

Igualmente te falta parentesis en

if ($nombre == "" or $nombreempresa == "" or $telefono == "" or $direcion == "" or $correo == "" or $celular== "") {

Y

} else {

Saludos.
  #3 (permalink)  
Antiguo 15/07/2014, 08:40
Avatar de ferwall  
Fecha de Ingreso: abril-2010
Mensajes: 57
Antigüedad: 14 años
Puntos: 3
Respuesta: Problema al validar form

Antes que nada gracias por responder, agregue las llaves, pero sigue sin funcionar, es como que anule el envío, me lleva siempre a la pagina de error, aunque el formulario este bien completado. Si borro el if completo se envia sin ningun problema.

Ya no se que hacer trate de validarlo con un sript pero tampoco pude, haga lo que haga, se me anula el envio y me muestra siempre el error, o lo envia directamente aunque haya campos incompletos

Última edición por ferwall; 15/07/2014 a las 09:12
  #4 (permalink)  
Antiguo 15/07/2014, 12:02
Avatar de herzbazi  
Fecha de Ingreso: febrero-2012
Mensajes: 612
Antigüedad: 12 años, 2 meses
Puntos: 36
Respuesta: Problema al validar form

yo en lo personal lo haria con isset

para validar desde un principio y lo que haria es tirar despues una alerta con js
__________________
Enseña todo lo que sepas...
Aprende todo lo que puedas..
  #5 (permalink)  
Antiguo 15/07/2014, 12:15
 
Fecha de Ingreso: junio-2014
Mensajes: 14
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Problema al validar form

La mejor forma es como te dice herzbazi, pon un if que encapsule todo y ponle como condición un isset que compruebe que todas las variables tienen contenido.
Código PHP:
Ver original
  1. if(isset($variable1) && isset($variable2) && resto..){
  2. // Script de manipulación del formulario.
  3.  
  4. } else {
  5.  
  6. header('Donde quieras');
  7. }

Lo que hace el isset es enviar true si la variable contiene algo. En la condicional con el && le indicamos que para que se ejecute el script de control del script todas las variables tienen que tener contenido. No sé si te funcione, espero que si.
  #6 (permalink)  
Antiguo 15/07/2014, 12:21
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Problema al validar form

Corríjanme si me equivoco...

En ocasiones a mi no me funciona usar "or" o "and", me funciona mejor si uso "&&" o "||".

Y podrías usar también, como dice herzbazi,

Código PHP:
if (!isset($nombre) || !isset($nombreempresa) || !isset($telefono) || !isset($direcion) || !isset($correo) || !isset($celular)) {

Y

} else { 
o en lugar de isset, empty

Código PHP:
if (empty($nombre) || empty($nombreempresa) || empty($telefono) || empty($direcion) || empty($correo) || empty($celular)) {

Y

} else { 
  #7 (permalink)  
Antiguo 15/07/2014, 16:22
Avatar de ferwall  
Fecha de Ingreso: abril-2010
Mensajes: 57
Antigüedad: 14 años
Puntos: 3
Respuesta: Problema al validar form

Ahi lo solucione!! muchas gracias por sus aportes!!! mas tarde subo la solucion como me quedo. muchas gracias a todos

Última edición por ferwall; 15/07/2014 a las 16:33

Etiquetas: form, formulario, html
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 17:18.