elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Problema con Formulario
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con Formulario  (Leído 2,916 veces)
Mechamon

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Problema con Formulario
« en: 27 Septiembre 2017, 17:22 pm »

Hola, un amigo tiene un problema usa un formulario y cuando le da enviar si nombre y apellido no tiene ñ o tilde, se envía sin problema, pero si tiene alguno de esos 2 casos da el error siguiente como se podría corregir.  Gracias

Lo sentimos mucho, pero hubo errores encontrados con el formulario que enviaste. Estos errores aparecen a continuación.

El nombre que ingresó no parece ser válido.
El Apellido que ingresó no parece ser válido.


Vuelva por favor y solucione estos errores.


En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.856



Ver Perfil WWW
Re: Problema con Formulario
« Respuesta #1 en: 27 Septiembre 2017, 17:30 pm »

Sin el código, no se puede ayudar.

No somos magos, ni adivinos, ni leemos tarot.

Saludos


En línea

Mechamon

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Problema con Formulario
« Respuesta #2 en: 27 Septiembre 2017, 17:47 pm »

Código
  1. <?php
  2. if(isset($_POST['email'])) {
  3.  
  4.    // EDIT THE 2 LINES BELOW AS REQUIRED
  5.    $email_to = "info@dominio.com";
  6.    $email_subject = "Formulario de contacto";
  7.  
  8.    function died($error) {
  9.        // your error code can go here
  10.        echo "Lo sentimos mucho, pero hubo errores encontrados con el formulario que enviaste. ";
  11.        echo "Estos errores aparecen a continuación.<br /><br />";
  12.        echo $error."<br /><br />";
  13.        echo "Vuelva por favor y solucione estos errores.<br /><br />";
  14.        die();
  15.    }
  16.  
  17.  
  18.    // validation expected data exists
  19.    if(!isset($_POST['first_name']) ||
  20.        !isset($_POST['last_name']) ||
  21.        !isset($_POST['email']) ||
  22.        !isset($_POST['telephone']) ||
  23.        !isset($_POST['comments'])) {
  24.        died('Lo sentimos, pero parece haber un problema con el formulario que envió.');      
  25.    }
  26.  
  27.  
  28.  
  29.    $first_name = $_POST['first_name']; // required
  30.    $last_name = $_POST['last_name']; // required
  31.    $email_from = $_POST['email']; // required
  32.    $telephone = $_POST['telephone']; // not required
  33.    $comments = $_POST['comments']; // required
  34.  
  35.    $error_message = "";
  36.    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
  37.  
  38.  if(!preg_match($email_exp,$email_from)) {
  39.    $error_message .= 'La dirección de correo electrónico que introdujo no parece válida.<br />';
  40.  }
  41.  
  42.    $string_exp = "/^[A-Za-z .'-]+$/";
  43.  
  44.  if(!preg_match($string_exp,$first_name)) {
  45.    $error_message .= 'El nombre que ingresó no parece ser válido.<br />';
  46.  }
  47.  
  48.  if(!preg_match($string_exp,$last_name)) {
  49.    $error_message .= 'El Apellido que ingresó no parece ser válido.<br />';
  50.  }
  51.  
  52.  if(strlen($comments) < 2) {
  53.    $error_message .= 'El Mensaje que ingresó no parece ser válido.<br />';
  54.  }
  55.  
  56.  if(strlen($error_message) > 0) {
  57.    died($error_message);
  58.  }
  59.  
  60.    $email_message = "Form details below.\n\n";
  61.  
  62.  
  63.    function clean_string($string) {
  64.      $bad = array("content-type","bcc:","to:","cc:","href");
  65.      return str_replace($bad,"",$string);
  66.    }
  67.  
  68.  
  69.  
  70.    $email_message .= "Nombre: ".clean_string($first_name)."\n";
  71.    $email_message .= "Apellido: ".clean_string($last_name)."\n";
  72.    $email_message .= "Correo electrónico: ".clean_string($email_from)."\n";
  73.    $email_message .= "Teléfono: ".clean_string($telephone)."\n";
  74.    $email_message .= "Mensaje: ".clean_string($comments)."\n";
  75.  
  76. // create email headers
  77. $headers = 'From: '.$email_from."\r\n".
  78. 'Reply-To: '.$email_from."\r\n" .
  79. 'X-Mailer: PHP/' . phpversion();
  80. @mail($email_to, $email_subject, $email_message, $headers);  
  81. ?>
  82.  
  83. <!-- include your own success html here -->
  84.  
  85. Gracias por contactarnos. Estaremos en contacto con usted muy pronto.
  86.  
  87. <?php
  88.  
  89. }
  90. ?>


Código
  1. <form name="contactform" method="post" action="send_form_email.php">
  2. <table width="450px">
  3. <tr>
  4. <td valign="top">
  5. <label for="first_name">Nombre *</label>
  6. </td>
  7. <td valign="top">
  8. <input type="text" name="first_name" maxlength="50" size="30">
  9. </td>
  10. </tr>
  11. <tr>
  12. <td valign="top">
  13. <label for="last_name">Apellido *</label>
  14. </td>
  15. <td valign="top">
  16. <input type="text" name="last_name" maxlength="50" size="30">
  17. </td>
  18. </tr>
  19. <tr>
  20. <td valign="top">
  21. <label for="email">Correo electrónico *</label>
  22. </td>
  23. <td valign="top">
  24. <input type="text" name="email" maxlength="80" size="30">
  25. </td>
  26. </tr>
  27. <tr>
  28. <td valign="top">
  29. <label for="telephone">Teléfono</label>
  30. </td>
  31. <td valign="top">
  32. <input type="text" name="telephone" maxlength="30" size="30">
  33. </td>
  34. </tr>
  35. <tr>
  36. <td valign="top">
  37. <label for="comments">Mensaje *</label>
  38. </td>
  39. <td valign="top">
  40. <textarea name="comments" maxlength="1000" cols="25" rows="6"></textarea>
  41. </td>
  42. </tr>
  43. <tr>
  44. <td colspan="2" style="text-align:center">
  45. <input type="submit" value="Enviar">
  46. </td>
  47. </tr>
  48. </table>
  49. </form>
« Última modificación: 27 Septiembre 2017, 18:39 pm por #!drvy » En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.856



Ver Perfil WWW
Re: Problema con Formulario
« Respuesta #3 en: 27 Septiembre 2017, 18:47 pm »

El error lo tienes en la linea 42 del PHP. Se hace una comprobación de los strings pero no admite acentos ni ñ ni ningún caracter que no sea (A-Za-z .'-) es decir, espacio, punto, comilla simple, guion, y las letras del tipo US-ASCII.

En un principio, activando el unicode y buscando palabras utf8 deberia funcionar:
Código
  1. $string_exp = "/^[\p{L} .'-]+$/u";

También puedes añadir manualmente los caracteres que buscas:
Código
  1. $string_exp = "/^[A-Za-zñÑçÇáéóíúÁÉÓÍÚ .'-]+$/";

Saludos


En línea

Mechamon

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Problema con Formulario
« Respuesta #4 en: 27 Septiembre 2017, 19:36 pm »

Gracias entonces cambio la linea 42 $string_exp = "/^[A-Za-z .'-]+$/"; por esta otra linea

$string_exp = "/^[A-Za-zñÑçÇáéóíúÁÉÓÍÚ .'-]+$/";



y el html tiene el <meta charset="utf-8">


Mod: No hacer doble post.
« Última modificación: 4 Octubre 2017, 18:20 pm por #!drvy » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problema con formulario MDI
Programación Visual Basic
fraktal 5 3,650 Último mensaje 6 Octubre 2006, 00:59 am
por fraktal
Problema con formulario PHP
PHP
daam 4 2,495 Último mensaje 25 Octubre 2007, 18:55 pm
por daam
Problema con formulario PHP
PHP
oscarj24 0 1,583 Último mensaje 1 Junio 2010, 07:17 am
por oscarj24
Problema con Formulario PHP
PHP
LordBlackRed 9 4,092 Último mensaje 6 Agosto 2010, 14:53 pm
por LordBlackRed
Problema con formulario HTM - PHP
PHP
kuka_18 8 3,603 Último mensaje 5 Agosto 2011, 09:11 am
por kuka_18
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines