1. ¡OFERTA! con cupón "DIRVPS": hosting por $0,01 y también VPS Linux y Windows por $0,01 el primer mes por Interserver ← publi
    Descartar aviso
Descartar aviso
Al usar este sitio web, aceptas que nosotros y nuestros socios podamos establecer cookies para fines tales como personalizar el contenido y la publicidad. Más información.

Problema preg_match

Tema en 'Programación y Diseño Web' iniciado por IGNACIO GARCIA, 15 Abr 2014.

  1. IGNACIO GARCIA

    IGNACIO GARCIA Nuevo usuario

    Buenas tardes,

    Estoy intentando verificar el campo de nombre de un formulario con la siguiente sentencia:

    if (!preg_match("/^[a-zA-ZáéíóÁÉÍÓ\s]$/",$nombre)) { ... }

    El problema es que no valida ni deja de validar, siempre muestra el mensaje de error que genera ese if, independientemente de que se le metan letras, números o simbolos: nunca está conforme :p
    Me estoy volviendo ya loco porque no veo el error en la sentencia, he probado a hacer un:
    print "<xmp>".print_r($nombre,1)."</xmp>";
    para ver si es que procesaba mal el campo pero no, la variable 'nombre' recoge bien los datos introducidos por el usuario.
    Alguno que vea el error me echa una mano? Gracias.
     
  2.  
  3. SIDIHOST

    SIDIHOST Nuevo usuario

    if (!preg_match("/^[a-zA-ZáéíóÁÉÍÓ ]*$/",$nombre))

    Ya me dirás!
     
  4. IGNACIO GARCIA

    IGNACIO GARCIA Nuevo usuario

    perfecto, muchas gracias!

    Por otro lado, si no es molestia, la he modificado dejándola así:
    if (!preg_match("/^[a-zA-ZáéíóÁÉÍÓ\ñ\Ñ\s]*$/",$nombre)){

    el problema es que la ñ la recoge como &ntilde, y la á como &aacute.
    Cómo puedo cambiarlo para que lo recoja bien?

    Muchas gracias :D
     
  5. Hola,

    Prueba cambiando la codificación en el código. Es decir la Ñ: &Ntilde;

    Es lo que se me ocurre.

    Salu2,
     
  6. eenda_works

    eenda_works Usuario activo

    Hola @Ignacio García,

    ¿Qué codificación tienes puesta en tu página web? Y otra razón muy pero que muy importante es la codificación de los archivos (totalmente distinta a la de tu web). Nosotros, por ejemplo, utilizamos el Notepad++ (en windows) con codificación UTF-8 sin Boom y la misma codificación en Coda (en mac os x).


    Espero haberte ayudado...
    Pon cualquier otra cosa que necesites y lo vemos.
     
  7. Hola,

    No soy programador pero creo que el tema viene por que ha de codificar los carácteres en el html indiferentemente dependiendo de la codificación que use el servidor.

    http://librosweb.es/xhtml/capitulo_3/codificacion_de_caracteres.html
     
  8. Me corrijo. La codificación si depende de Apache la solución pasa por codificar. Como te dijo el usuario anterior prueba con UTF8. Como dijo el usuario a EEnda UTF8.
     
  9. eenda_works

    eenda_works Usuario activo

    Hola @f.villalba

    En realidad no es necesario codificar caracteres del tipo á > &aacute;. Nosotros por ejemplos no utilizamos ese método. Programamos directamente en UTF-8 sin Boom, a nivel de editor de texto y a nivel de codificación del HTML y nunca nos ha dado error de ningún tipo.

    Espero que, entre todos los comentarios, hayas podido solucionar tu problema, @IGNACIO GARCIA.
     
    A nonamef191118 le gusta esto.
  10. Aquí esta todo explicado http://www.gestiweb.com/?q=content/problemas-html-acentos-y-eñes-charset-utf-8-iso-8859-1

    • Depende del editor en que se haya hecho la web, si en el trabajamos por defecto en UTF-8 o ISO-8859-1. Si el archivo original estaba escrito en ISO-8859-1 y lo editamos en UTF-8, veremos los caracteres especiales mal codificados. Si guardamos ese archivo tal cual, estaremos corrompiendo la codificación original (se guardará mal, con UTF-8). Y viceversa.
     
    A eenda_works le gusta esto.


Alojamiento web, Hosting Reseller, Servidores Dedicados - All in Hosting


    
    
    
    
Blog · Sitios amigos: GuiaHosting · Unidominios · Interalta ·