Foros del Web » Programando para Internet » PHP »

Campo obligatorio

Estas en el tema de Campo obligatorio en el foro de PHP en Foros del Web. Hola amigos, no consigo dar con la solución a este problema. Tengo que añadir a este formulario una " casilla de verificación " que acepte ...
  #1 (permalink)  
Antiguo 08/09/2010, 15:09
 
Fecha de Ingreso: enero-2002
Mensajes: 284
Antigüedad: 22 años, 3 meses
Puntos: 0
Campo obligatorio

Hola amigos, no consigo dar con la solución a este problema.

Tengo que añadir a este formulario una "casilla de verificación" que acepte la opción "Leo y acepto las condiciones".

El problema es que si no se activa este campo el email no se podrá enviar.

Gracias y saludos




Código:
<body text="#000000" link="#66FF00" vlink="#006060" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" scrollbars="no">
<?
    if (!$HTTP_POST_VARS){
    
    
    ?>
<form action="envia_form.php" method=post>


    </form>
    <? 
    }else{
       
        $cuerpo = "Formulario enviado\n";
        $cuerpo .= "Nombre: " . $HTTP_POST_VARS["Nombre"] . "\n";
        $cuerpo .= "Email: " . $HTTP_POST_VARS["Email"] . "\n";      
        $cuerpo .= "Empresa: " . $HTTP_POST_VARS["Empresa"] . "\n";
        $cuerpo .= "Direccion: " . $HTTP_POST_VARS["Direccion"] . "\n";
        $cuerpo .= "Ciudad: " . $HTTP_POST_VARS["Ciudad"] . "\n";
        $cuerpo .= "CodigoPostal: " . $HTTP_POST_VARS["CodigoPostal"] . "\n";
        $cuerpo .= "Provincia: " . $HTTP_POST_VARS["Provincia"] . "\n";
        $cuerpo .= "Telefono: " . $HTTP_POST_VARS["Telefono"] . "\n";
        $cuerpo .= "Actividad: " . $HTTP_POST_VARS["Actividad"] . "\n";


     

       
        mail("[email protected]","Formulario recibido",$cuerpo);

    ?>
    <table width="100%" height="100%" cellspacing="0" border="0" cellpadding="0">
  <tbody>
    <tr>
      <td align="center"><table width="550" height="402" cellspacing="0" border="0" cellpadding="0"><tbody><tr><td align="center" valign="middle" bgcolor="#BED23D"><table width="507" height="359" cellspacing="0" border="0" cellpadding="0">
        <tbody>
          <tr>
            <td align="center" valign="middle" bgcolor="#bed23d"><h4>
              <? 
if (!mail){ echo "No se ha enviado el formulario correctamente"; } else {  echo "Gracias por rellenar el formulario.<br>Se ha enviado correctamente."; } ?>
            </h4>
                <!-- Cierro el </h7>  -->            </td>
          </tr>
        </tbody>
      </table>        <h4>&nbsp;</h4>  
      </td>
    </tr>
      </tbody>
      </table>
</td>
</tr>
  </tbody>
</table>
<? }  ?>
    </body>
  #2 (permalink)  
Antiguo 08/09/2010, 15:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Tema movido desde Configuración PHP a PHP
  #3 (permalink)  
Antiguo 08/09/2010, 15:55
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 13 años, 9 meses
Puntos: 7
Respuesta: Campo obligatorio

Puedes ponerlo asi

Código HTML:
Ver original
  1. <input type="checkbox" name="checko" id="checko" align= align="middle" />
  2.                                   <span class="textnegro"> Acepto </span>

y para comprobar si esta seleccionado el codigo javascript seria:

Código Javascript:
Ver original
  1. function checkForm(f){
  2. if (f.checko.checked == false){
  3.             alert("Para continuar por favor acepte la condición");
  4.             return false;
  5.             }
  6. }

y en el form pondrias

Código HTML:
Ver original
  1. <form name="form" method="post" action="algo.php" onSubmit="return checkForm(this)">

saludos espero te sirva
__________________
--No todos aprendemos de la misma forma, ni a la misma velocidad---
  #4 (permalink)  
Antiguo 08/09/2010, 17:45
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Campo obligatorio

¿Qué es esto?

Código PHP:
if (!mail){ echo "No se ha enviado el formulario correctamente"; } else {  echo "Gracias por rellenar el formulario.<br>Se ha enviado correctamente."; } ?> 
Por otro lado, sería tan simple como esto :

Código HTML:
Ver original
  1. <input type="checkbox" name="acepto" value="1" />

Y compruebas con PHP que sea distinto de 1. Si lo es, es porque no se seleccionó :

Código PHP:
Ver original
  1. if($_POST['acepto'] != '1') { // o if(empty($_POST['acepto'])) {
  2.        echo 'No has aceptado los términos y condiciones';
  3. } else {
  4.        // Envias el mensaje...
  5. }
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #5 (permalink)  
Antiguo 11/09/2010, 12:34
 
Fecha de Ingreso: enero-2002
Mensajes: 284
Antigüedad: 22 años, 3 meses
Puntos: 0
Respuesta: Campo obligatorio

Vamos a poner la cosa en marcha.

spider esa linea es para advertir al usuario si no se ha enviado el form.

muchísimas gracias
  #6 (permalink)  
Antiguo 11/09/2010, 13:55
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Campo obligatorio

Cita:
Iniciado por Monje Ver Mensaje
spider esa linea es para advertir al usuario si no se ha enviado el form.


Uhmmm... . Entiendo la idea, pero no es correcta. Lo que estás comprobando es si se envió o no un email. Si el formulario se envia o no, es otra cosa, y lo haces en la línea

Código PHP:
Ver original
  1. if (!$HTTP_POST_VARS){

Y que deberías cambiar por $_POST, ya que $HTTP_POST_VARS está obsoleta.

Saludos.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #7 (permalink)  
Antiguo 12/09/2010, 15:01
 
Fecha de Ingreso: enero-2002
Mensajes: 284
Antigüedad: 22 años, 3 meses
Puntos: 0
Respuesta: Campo obligatorio

Otra vez aquí.

No consigo que funcione. He probado todo lo que se me ha ocurrido en las 2 soluciones que proponéis (spider y zapt),y no hay manera.

He de decir que estoy pegao en PHP.

Pongo todo el codigo a ver si , por favor, me podéis decir donde se colocan las lineas.

Gracis otra vez

Código:
       <head>
        <title>SOLICITUD DE CATALOGOS</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="texto%20Normal.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.Estilo1 {font-family: Verdana, Arial, Helvetica, sans-serif}
-->
</style>
</head>

    
<body text="#000000" link="#66FF00" vlink="#006060" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" scrollbars="no">
<?
    if (!$HTTP_POST_VARS){
    
    
    ?>
<form action="envia_form.php" method=post>

      
  <table width="534" height="312" border="0" align="center" bordercolor="#000066" cellspacing="0">
    <tr> 
      <td height="35" bgcolor="#BED23D"> <div align="center" class="negritaBlanca Estilo1"></div></td>
      <td height="35" bgcolor="#BED23D">&nbsp;</td>
      <td height="35" colspan="7" bgcolor="#BED23D"><span class="negritaBlanca Estilo1"><font color="#FFFFFF"><b>Canalizaciones INX S.L.</b></font></span></td>
    </tr>
    <tr>
      <td height="12" colspan="9" bgcolor="#808080"><img src="Images/Elements/Cuadro_transparente.png" width="530" height="8"></td>
    </tr>
    <tr> 
      <td width="3" rowspan="9" bgcolor="#BED23D" class="negritaBlanca"><img src="Images/Elements/Cuadro_transparente.png" width="2" height="220"></td>
      <td height="24" bgcolor="#808080" class="negritaBlanca">&nbsp;</td>
      <td bgcolor="#808080" class="negritaBlanca"><div align="left"><font color="#FFFFFF" size="-1" face="Arial, Helvetica, sans-serif"><b>Nombre</b></font></div></td>
      <td width="420" bgcolor="#808080"> <b> 
        <input name="Nombre" type="text" id="Nombre" size="70">
      </b></td>
      <td width="2" colspan="5" rowspan="9" bgcolor="#808080">&nbsp;</td>
    </tr>
    <tr> 
      <td width="12" height="24" bgcolor="#808080" class="negritaBlanca">&nbsp;</td>
      <td width="87" height="24" bgcolor="#808080" class="negritaBlanca"><div align="left"><font color="#FFFFFF" size="-1" face="Arial, Helvetica, sans-serif"><b>Empresa</b></font></div></td>
      <td width="420" bgcolor="#808080"> <b> 
        <input name="Empresa" type="text" id="Empresa" size="70">
      </b></td>
    </tr>
    <tr> 
      <td width="12" height="24" bgcolor="#808080" class="negritaBlanca">&nbsp;</td>
      <td width="87" height="24" bgcolor="#808080" class="negritaBlanca"><div align="left"><font color="#FFFFFF" size="-1" face="Arial, Helvetica, sans-serif"><b>Direcci&oacute;n</b></font></div></td>
      <td width="420" bgcolor="#808080"> <b> 
        <input name="Direccion" type="text" id="Direccion" size="70">
      </b></td>
    </tr>
    <tr> 
      <td width="12" height="24" bgcolor="#808080" class="negritaBlanca">&nbsp;</td>
      <td width="87" height="24" bgcolor="#808080" class="negritaBlanca"><div align="left"><font color="#FFFFFF" size="-1" face="Arial, Helvetica, sans-serif"><b>Ciudad</b></font></div></td>
      <td width="420" height="24" bgcolor="#808080"> <b> 
        <input name="Ciudad" type="text" id="Ciudad" size="40">
      </b></td>
    </tr>
    <tr> 
      <td width="12" height="24" bgcolor="#808080" class="negritaBlanca">&nbsp;</td>
      <td width="87" height="24" bgcolor="#808080" class="negritaBlanca"><div align="left"><font color="#FFFFFF" size="-1" face="Arial, Helvetica, sans-serif"><b>Cod. 
      postal</b></font></div></td>
      <td width="420" height="24" bgcolor="#808080"> <b> 
        <input name="CodigoPostal" type="text" id="CodigoPostal" size="40">
      </b></td>
    </tr>
    <tr> 
      <td width="12" height="24" bgcolor="#808080" class="negritaBlanca">&nbsp;</td>
      <td width="87" height="24" bgcolor="#808080" class="negritaBlanca"><div align="left"><font color="#FFFFFF" size="-1" face="Arial, Helvetica, sans-serif"><b>Prov&iacute;ncia</b></font></div></td>
      <td width="420" bgcolor="#808080"> <b> 
        <input name="Provincia" type="text" id="Provincia" size="40">
      </b></td>
    </tr>
    <tr> 
      <td width="12" height="24" bgcolor="#808080" class="negritaBlanca">&nbsp;</td>
      <td width="87" height="24" bgcolor="#808080" class="negritaBlanca"><div align="left"><font color="#FFFFFF" size="-1" face="Arial, Helvetica, sans-serif"><b>Tel&eacute;fono</b></font></div></td>
      <td width="420" bgcolor="#808080"> <b> 
        <input name="Telefono" type="text" id="Telefono" size="40">
      </b></td>
    </tr>
    <tr> 
      <td width="12" height="24" bgcolor="#808080" class="negritaBlanca">&nbsp;</td>
      <td width="87" height="24" bgcolor="#808080" class="negritaBlanca"><div align="left"><font color="#FFFFFF" size="-1" face="Arial, Helvetica, sans-serif"><b>Email</b></font></div></td>
      <td width="420" bgcolor="#808080"> <b> 
        <input name="Email" type="text" id="Email" size="40">
      </b></td>
    </tr>
    
    <tr> 
      <td width="12" height="24" bgcolor="#808080" class="negritaBlanca">&nbsp;</td>
      <td width="87" height="24" bgcolor="#808080" class="negritaBlanca"><div align="left"><font color="#FFFFFF" size="-1" face="Arial, Helvetica, sans-serif"><b>Actividad</b></font></div></td>
      <td width="420" height="24" bgcolor="#808080"> <b> 
        <input name="Actividad" type="text" id="Actividad" size="40">
      </b></td>
    </tr>
    <tr> 
      <td height="21" colspan="3" bgcolor="#808080" class="negritaBlanca"><b><img src="Images/Elements/Cuadro_transparente.png" width="105" height="20"></b></td>
      <td colspan="6" bgcolor="#808080">&nbsp;</td>
    </tr>
    
    <tr> 
      <td height="27" colspan="3" bgcolor="#CCCCCC"><b><font color="#000099"></font></b></td>
      <td colspan="6" bgcolor="#CCCCCC"> <b> 
        <input type="submit" name="Submit" value="Enviar">
        <input type="reset" name="Submit2" value="Restablecer">
        </b></td>
    </tr>
  </table>
     
  <p>&nbsp;</p>
      <p>&nbsp;</p>
      <p><br>
      </p>
    </form>
    <? 
    }else{
       
        $cuerpo = "Formulario enviado\n";
        $cuerpo .= "Nombre: " . $HTTP_POST_VARS["Nombre"] . "\n";
        $cuerpo .= "Email: " . $HTTP_POST_VARS["Email"] . "\n";      
        $cuerpo .= "Empresa: " . $HTTP_POST_VARS["Empresa"] . "\n";
        $cuerpo .= "Direccion: " . $HTTP_POST_VARS["Direccion"] . "\n";
        $cuerpo .= "Ciudad: " . $HTTP_POST_VARS["Ciudad"] . "\n";
        $cuerpo .= "CodigoPostal: " . $HTTP_POST_VARS["CodigoPostal"] . "\n";
        $cuerpo .= "Provincia: " . $HTTP_POST_VARS["Provincia"] . "\n";
        $cuerpo .= "Telefono: " . $HTTP_POST_VARS["Telefono"] . "\n";
        $cuerpo .= "Actividad: " . $HTTP_POST_VARS["Actividad"] . "\n";


     

       
        mail("[email protected]","Formulario recibido",$cuerpo);

    ?>
    <table width="100%" height="100%" cellspacing="0" border="0" cellpadding="0">
  <tbody>
    <tr>
      <td align="center"><table width="550" height="402" cellspacing="0" border="0" cellpadding="0"><tbody><tr><td align="center" valign="middle" bgcolor="#BED23D"><table width="507" height="359" cellspacing="0" border="0" cellpadding="0">
        <tbody>
          <tr>
            <td align="center" valign="middle" bgcolor="#bed23d"><h4>
              <? 
if (!mail){ echo "No se ha enviado el formulario correctamente"; } else {  echo "Gracias por rellenar el formulario.<br>Se ha enviado correctamente."; } ?>
            </h4>
                <!-- Cierro el </h7>  -->            </td>
          </tr>
        </tbody>
      </table>        <h4>&nbsp;</h4>  
      </td>
    </tr>
      </tbody>
      </table>
</td>
</tr>
  </tbody>
</table>
<? }  ?>
    </body>
    </html>
  #8 (permalink)  
Antiguo 12/09/2010, 15:16
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: Campo obligatorio

Monje: quita cuanto antes esa línea que te marca spider_boy, no lo sé, pero quizás esa sea la razón de que tu código falle. Eso en realidad no comprueba nada, ya que mail no es una variable sino un nombre de función y no la estás invocando (la comprobación deberías hacerla antes, cuando invocas la función). No sé qué hará PHP en ese caso, quizás tome "mail" como una constante (string) o quizás tire error fatal, pero por las dudas quita toda esa línea. Sé que cuando uno programa quiere ver funcionando todo cuanto antes, pero es evidente que el código te lo has copiado de algún lado y no lo terminas de entender. Así será mucho más difícil corregir los errores y tardarás mucho más en hacer funcionar el código. Disculpa que lo diga con cierta crudeza, es sólo para evitar que te frustres cuando veas que las soluciones no "funcionan mágicamente". Tanto la alternativa de spider_boy como la de zapt142 son válidas y funcionan. Pero la de zapt142 no es en PHP sino en JavaScript, que es un lenguaje del lado del cliente y que por lo tanto es fácil de burlar para un hacker. Mi recomendación es que implementes ambas soluciones. ¡Suerte!
  #9 (permalink)  
Antiguo 13/09/2010, 16:42
 
Fecha de Ingreso: enero-2002
Mensajes: 284
Antigüedad: 22 años, 3 meses
Puntos: 0
De acuerdo Respuesta: Campo obligatorio

Solucionado!!

He optado por la solución de Zapt, pues al no saber de PHP, para mí era más inteligible, he cambiado la línea del POST y funciona a la perfección.

Muchísimas gracias a los 3 por los aportes.

Etiquetas: campos
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 06:21.