Ver Mensaje Individual
  #8 (permalink)  
Antiguo 31/10/2010, 11:39
Caminantejm
 
Fecha de Ingreso: julio-2009
Mensajes: 75
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: Cómo implementar captcha en formulario HTML+PHP

Gracias joankass.
Andaba tratando de incluir el reCaptcha y no me lo permite por algún problema que ya no controlo (y creo que le sucede a más gente). He dado con tu código y te lo agradezco mucho porque creo que me puede ir bien. Únicamente que no consigo desentrañar el problema de la línea 90. ¿Me puedes indicar dónde reside el conflicto? Se me escapa y no lo veo.

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4. // Configuracion  
  5. $conf['mailDestinatario'] = '[email protected]';  
  6. $conf['mailAsunto'] = 'Buzon';  
  7. $conf['url_error'] = 'http://www.esparte.es/pg10_correoesparte_noes.php'; //---cambiar por la página de error---  
  8. $conf['url_ok'] = 'http://www.esparte.es/pg10_correoesparte_sies.php'; //---cambiar por la página de ok---
  9.  
  10.  
  11. ?>
  12. <html>
  13.  
  14. <head>
  15.  
  16.  
  17. <meta http-equiv="Content-Language" content="es">
  18. <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
  19. <title>Dirección de esparte</title>
  20. <meta http-equiv="Page-Enter" content="blendTrans(Duration=1.0)">
  21. <meta name="keywords" content="esparto,artesania,cursos,tradiciones,esparte,cesteria,capazos,alfombras">
  22. <meta name="description" content="Artesania de esparto;esparte.Cursos para aprender a elaborar cestas,capazos,alfombras,paneras">
  23.  
  24.  
  25. <script language="javascript" type="text/javascript" src="validaesparte_es.js"></script>
  26. <link rel="stylesheet" href="styleesparte.css" type="text/css">
  27.  
  28.  
  29. <!--mstheme--><link rel="stylesheet" type="text/css" href="_themes/pleita2/plei1011.css"><meta name="Microsoft Theme" content="pleita2 1011, default">
  30. </head>
  31.  
  32. <body >  <!-- </body>oncontextmenu="return false" onselectstart="return false">    -->
  33.  
  34. <div align="left">
  35.    
  36.     <div align="left">
  37.         <table border="0" width="625" cellspacing="0" cellpadding="0" id="table16">
  38.             <tr>
  39.                 <td>
  40.                 <p style="text-align: left"><font size="2">&nbsp;&nbsp; Si lo deseas puedes enviar tu mensaje a
  41.                 través de este formulario.</font>
  42.                
  43.                 </p>
  44.                 <form name="esparte" action="pg10_correoesparte_es.php" method="post">
  45. <fieldset style="width: 635px; height: 320px">
  46. <legend align="center"><b><font size="2" color="#800000">&nbsp;&nbsp;Datos del mensaje&nbsp;&nbsp;</font></b><p>&nbsp;</legend>
  47. </p>
  48. <table border=0 width="600">
  49.    
  50.     <tr>
  51.     <td class="formulario">&nbsp;&nbsp;Nombre:</td>
  52.     <td align="left"><input type="text" name="nombre" size="50" maxlength="50" onDblClick="borrartext(this)"></td>
  53.     </tr>
  54.    
  55.     <tr>
  56.     <td class="formulario">&nbsp;&nbsp;Apellidos:</td>
  57.     <td align="left"><input type="text" name="apellidos" size="50" maxlength="50" onDblClick="borrartext(this)"></td>
  58.     </tr>
  59.  
  60.     <tr>
  61.     <td class="formulario">&nbsp;&nbsp;Correo electrónico:</td>
  62.     <td align="left"><input name="correo" size="50" maxlength="50" onDblClick="borrartext(this)"></td>
  63.     </tr>
  64.  
  65.         <tr>
  66.         <td colspan="2"></div><textarea cols="110" rows="7" name="comentarios" onDblClick="borrartext(this)">&nbsp;&nbsp;&nbsp;Aquí puedes escribir lo que desees. [Doble click - Borrar]</textarea>
  67.         <br>
  68.         <br>
  69.         <br>
  70. &nbsp;<p>&nbsp;
  71.  
  72. </tr>
  73.  
  74. <tr>
  75. <td colspan="2">
  76.  
  77. <br>
  78. <img src="http://www.esparte.es/captcha.php" width="100" height="30"> <input name="tmptxt" type="text" class="textcaptcha" width="100" height="30">
  79. <font size="2" color="#800000">Código de seguridad (mayúsculas, minúsculas y números)</font><br>
  80. <br>
  81.  
  82. <?php
  83. ######################################################################
  84. # codigo de verificacion
  85. ######################################################################
  86.  
  87. // Validar argumentos y captcha
  88. if(!$_POST) {
  89.   header('Location: '.$conf['url_error']);
  90.   exit;
  91. }
  92.  
  93. if ($_SESSION['tmptxt'] != $_POST['tmptxt']) {  
  94.   header('Location: '.$conf['url_error']);  
  95.   exit;  
  96. }
  97.  
  98. // Limpiar input de usuario
  99. foreach($_POST as $id=>$value) {
  100.   $var[$id] = strip_tags(trim($value));
  101. }
  102.  
  103. // Definir cuerpo del email
  104. foreach($var as $id=>$value) {
  105.   $mailCuerpo .= "$id : $value\r\n";
  106. }
  107.  
  108. // Enviar correo
  109. if(mail($conf['mailDestinatario'], $conf['mailAsunto'], $mailCuerpo)) {
  110.   header('Location: '.$conf['url_ok']);
  111. } else {
  112.   header('Location: '.$conf['url_error']);
  113. }
  114. ?>
  115.  
  116.  
  117. </td>
  118. </tr>
  119.  
  120.     <tr>
  121.     <td colspan="2" align="center">
  122.     <button type="submit" name="formularioesparte"  onClick="return total()"> Enviar <img src="flena3.gif" alt="Enviar Formulario"> </button>
  123.     &nbsp;&nbsp;&nbsp;&nbsp;
  124.     <button type="reset"> Borrar <img src="goma1.gif" alt="Borrar los datos"></button></td>
  125.     </tr>
  126.    
  127. </table>
  128. </fieldset>
  129.  
  130. </form>
  131.    
  132.                 </td>
  133.             </tr>
  134.     <tr>
  135.     <td><br><br><br><br>
  136.     </td>
  137.     </tr>
  138.        
  139.         </table>
  140.         <p>&nbsp;</div>
  141.    
  142.            
  143.  
  144. </body>
  145. <!-- Inicio - Doble página - fuera del body y antes de /html-->
  146. <script language="JavaScript" src="menu_right10.js"></script>
  147.  
  148. <!-- Evitar pinchar para activar el control -->
  149. <script type="text/javascript" src="ieupdate.js"></script>
  150.  
  151.  
  152. </html>
__________________
Gracias de antemano por la ayuda.
Saludos.
Caminantejm.