Nueva pregunta

Pregunta:

Fecha: 17-08-2019 17:55:31 (En Español)

no funcionan las condicionales de mi fromulario [No resuelta]

funciona el submit antes me llevava a otra pagina lo solucione con
header ("location:../html/cont.php ");


pero mis condicionales no funcionan

<?php

$enviado = "";
$errores = "";

if (isset($_POST["submit"])){
	$nombre = $_POST["nombre"];
	$apellido = $_POST["apellido"];
	$telefono = $_POST ["telefono"];
	$correo = $_POST["correo"];
    $cotizacion = $_POST["cotizacion"];
	
	if(!empty($nombre)){
		$nombre = trim($nombre);
		$nombre = filter_var($nombre, FILTER_SANITIZE_STRING);
	}else{
		$errores .= "Porfavor ingrese el Nombre <br/>";
	}
	
	if(!empty($apellido)){
		$apellido = trim($apellido);
		$apellido = filter_var($apellido, FILTER_SANITIZE_STRING);
	}else{
		$errores .= "Porfavor ingrese el Apellido <br/>";
	}
	if(!empty($telefono)){
		$telefono = trim($telefono);
		$telefono = filter_var($telefono, FILTER_SANITIZE_STRING);
	}else{
		$errores .= "Porfavor ingrese el Apellido <br/>";
	}
	if(!empty($correo)){
		$correo = filter_var($correo ,FILTER_SANITIZE_EMAIL);
		
		if(!filter_var($correo , FILTER_VALIDATE_EMAIL)){
			$errores .= "Porfavor ingrese un Correo valido";
		}
	}else{
		$errores .= "Porfavor ingrese un Correo" ;
	}
	if (!empty($cotizacion)){
		$cotizacion = htmlspecialchars($cotizacion);
		$cotizacion = trim($cotizacion);
		$cotizacion = stripslashes($cotizacion);	
	}else{
		$errores .= "Porfavor ingrese una cotizacion";
	}
	if(!$errores){
		$enviar_a = "renteriaemiliano2@gmail.com";
		$asunto = "Correo enviado desde Tu clima y servicios.com";
		$cotizacion_preparado = "De: $nombre \n";
		$cotizacion_preparado .= "Apellido: $apellido \n";
		$cotizacion_preparado .= "Correo: $correo \n";
		$cotizacion_preparado .= "Telefono: $telefono /n";
		$cotizacion_preparado .= "Cotizacion:$cotizacion /n" ;
		
		//mail($nombre, $apellido, $correo, $telefono, $cotizacion );
		$enviado = true;
		
	}        
header ("location:../html/cont.php ");
}



<div class="wrap">
           	 <form action="../scripts/form.php"  method="post" >
             <input type="text" class="form-control"  name="nombre" placeholder="Nombre"  value ="<?php if(!$enviado && isset($enviado)) echo $nombre ?>" >
             <input type="text" class="form-control"  name="apellido" placeholder="Apellido"  value ="<?php if(!$enviado && isset($enviado)) echo $apellido ?>" >
             <input type="text" class="form-control"  name="telefono" placeholder="Telefono" value ="<?php if(!$enviado && isset($enviado)) echo $telefono ?>" >
             <input type="text" class="form-control"  name="correo" placeholder="Correo"  value ="<?php if(!$enviado && isset($enviado)) echo $correo ?>" >
             <textarea class="cot-text" id="Cotizacion" placeholder="Cotización" name="cotizacion"></textarea>
             
			   <?php if (!empty($errores)):?>
			 <div class="alert error">
	                <? echo  $errores;  ?>
	            </div>
	            
	          <?php elseif ($enviar): ?>
            
	            <div class="alert sucess">
	                <p>Enviado correctamente</p>
	            </div>	     
	                
	         <?php endif ?>
      
       <input type="submit"  class="btn btn-primario" value="Enviar Correo" name="submit" >
    </form>
   </div>
Etiquetas: $_POST - Formulario - HTML - HTML5 - Opinión - PHP - Pregunta - Web Votos: 0 - Respuestas: 3 - Vistas: 6 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 19-08-2019 13:18:18 Podrías decir cuál es el error que obtienes o qué es lo que no hace (y debería hacer). Lo que veo es que hay un formulario que procesa sus datos en form.php y de allí te redirige a cont.php. Lo primero que veo es que si hay algún error, no tienes donde mostrarlo ya que dejaste atrás el archivo con el formulario y, por otra parte, al saltar a cont.php también dejas atrás todo el procesamiento. Tal vez tienes alguna razón para hacerlo pero, por qué procesas el formulario en dos archivos diferentes (form.php y cont.php)?   Votos: 1 - Link respuesta
     
  • Fecha: 23-08-2019 13:59:54 debería marcarme los errores del formulario al no ingresar o ingresar incorrectamente los datos .
    me mandaba directamente a la pagina al form.php , como no tenia estructura html me salia en blanco agrege el header para que me mantuviera en esa pagina ya que no me manda a la otra,
    aun asi no me marcaba los errores de formulario .

    intente llamarlo desde mi código php poniéndolo asi como index" con require mandando llamar la pagina html

    y en mi pagina html tenia
    action=  "<? php echo $_SERVER["PHP_SELF"] ?>"


    y asi no me mandaba a otra pagina pero seguia sin marcarme errores del formulario
      Votos: 0 - Link respuesta
     
  • Fecha: 26-08-2019 03:55:23 Todos esos condicionales (lineas 13 a 47) puedes evitarlas si marcas los campos de tu formulario como "requiered":
    <input type=text name="nombre" required>

    De esa manera no se envía el formulario a menos que esos campos no estén vacíos. Luego puedes validarlos todos (sin tanto condicional):
    $nombre = filter_input(INPUT_POST, 'nombre');


    El hecho de que te mande a otras páginas es porque tu lo pides cuando en el formulario colocas un valor para "action". Si no quieres que vaya a otra página y lo vas a procesar en la misma página, deja eso vacío:
    <form action=""  method="post" >


    Y en tu otro archivo el brinco lo produce la línea que dice "header ("location:../html/cont.php ");"
      Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión