Foros del Web » Programando para Internet » PHP »

Formulario PHP

Estas en el tema de Formulario PHP en el foro de PHP en Foros del Web. Hola que tal amigos, necesito de su experiencia en PHP, me parece que es algo sencillo pero yo no le encuentro la vuelta investigando en ...
  #1 (permalink)  
Antiguo 27/08/2021, 18:56
Avatar de bathory84  
Fecha de Ingreso: junio-2010
Ubicación: Venezuela
Mensajes: 257
Antigüedad: 13 años, 9 meses
Puntos: 1
Formulario PHP

Hola que tal amigos, necesito de su experiencia en PHP, me parece que es algo sencillo pero yo no le encuentro la vuelta investigando en internet.

Tengo un formulario que funciona perfectamente, ahora le quiero colocar un CHECKBOX, una sola casilla de verificación, al correo me llega la información bien pero en el PHP no me valida la casilla de verificación como obligatoria, aqui les dejo el codigo y ustedes me dicen que hice mal:


Código PHP:
<?php
if(isset($_POST["action"])) {
    
$name $_POST['name'];        // Sender's name
    
$email $_POST['email'];      // Sender's email address
    
$servicio  $_POST['servicio'];     // Sender's phone number
    
$pais  $_POST['pais'];     // Sender's phone number
    
$message $_POST['message'];  // Sender's message
    
$casilla $_POST['casilla'];  // Sender's message
    
$headers 'From: Pagina Web www.mipaginaweb.com' "\r\n";

    
$to '[email protected]';     // Recipient's email address
    
$subject 'Mensaje desde la Pagina Web www.mipaginaweb.com'// Message title

    
$body " De: $name \n E-Mail: $email \n Servicio: $servicio \n Pais: $pais \n Mensaje : $message \n Verificación : $casilla \n"  ;
    
    
// init error message
    
$errmsg='';
    
// Check if name has been entered
    
if (isset($_POST['name']) && $_POST['name'] == '') {
        
$errmsg .= '<p>Por Favor Ingrese su Nombre.</p>';
    }
    
// Check if email has been entered and is valid
    
if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
        
$errmsg .= '<p>Por Favor Ingrese su Email.</p>';
    }
    
//Check if phone number has been entered
    
if ( isset($_POST['servicio']) && $_POST['servicio'] == '') {
        
$errmsg .= '<p>Por Favor Seleccione el Servicio.</p>';
    }
    
    
//Check if phone number has been entered
    
if ( isset($_POST['pais']) && $_POST['pais'] == '') {
        
$errmsg .= '<p>Por Favor Seleccione el País.</p>';
    }
    
    
//Check if message has been entered
    
if ( isset($_POST['message']) && $_POST['message'] == '') {
        
$errmsg .= '<p>Por Favor Ingrese su Mensaje.</p>';
    }
    
    if ( isset(
$_POST['casilla']) && $_POST['casilla'] == '') {
        
$errmsg .= '<p>Por Favor Active la Casilla de Verificación.</p>';
    }


        
    
$result='';
    
// If there are no errors, send the email
    
if (!$errmsg) {
        if (
mail ($to$subject$body$headers)) {
            
$result='<div class="alert alert-success">Gracias por contactarnos. Su mensaje ha sido enviado con éxito. ¡Nos pondremos en contacto contigo muy pronto! </div>';
        }
        else {
          
$result='<div class="alert alert-danger">Lo siento, hubo un error al enviar tu mensaje. Por favor, inténtelo de nuevo más tarde. </div>';
        }
    }
    else{
        
$result='<div class="alert alert-danger">'.$errmsg.'</div>';
    }
    echo 
$result;
 }


?>

El campo de verificación que yo les digo es la variable "casilla".
  #2 (permalink)  
Antiguo 28/08/2021, 00:47
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 21 años, 11 meses
Puntos: 1284
Respuesta: Formulario PHP

Hola:

Si un checkbox no se clickea, directamente no se envía entonces tu control sería: if (!isset($_POST["casilla"])).

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Etiquetas: formulario, variable
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 03:14.