
24/01/2010, 01:20
|
| | Fecha de Ingreso: diciembre-2009
Mensajes: 2
Antigüedad: 15 años, 3 meses Puntos: 0 | |
Problema del eregi al tratar la ñ Buen día,
Quisiera saber si alguien sabe como resolver este problema con el que me acabo de enfrentar ahora que quiero desplegar el contenido de una base de datos MySQL en un sitio web, vía php.
La situación es la siguiente; tengo una página donde le pido a un usuario su nombre para poder registrarle un comentario, y para ello, disponía de una expresión regular sencilla manejada con eregi que me permitía validar la entrada. Luego, esta entrada la convertía en mayúscula para tener mayor uniformidad a la hora de almacenar y recuperar información de la base de datos de MySQL. Sin embargo, observé que si el usuario introducí la "ñ", la función strupper no la conviertía automáticamente en "Ñ", quedando resultados como "NUñEZ", lo cual no se ve bien.
Entonces, creí que era tal vez un problema de codificación, por lo que proseguí a decodificar las variables que estaba recibiendo en $_POST, tal como $nombre = strtoupper(utf8_decode($_POST['nombre']), ya que antes de esto el nombre lo recibía y trataba en la validación tal cual el usuario lo proporcionaba en el formulario. Observé enseguida que después de este pequeño cambio, el strtoupper "YA" me convertió correctamente la "ñ" en "Ñ", pero el eregi me mandó el error al no reconocer el patrón siguiente: eregi('^[a-zñÑ]+([[:space:]][a-zñÑ]+)*$', $nombre). Al no encontrar la fuente del error, decidí regresar a mi primera opción: validar el nombre en crudo, es decir, como me lo pasó el usuario, observando además que en la base de datos, el nombre de Juan Nuñez se almacenó como JUAN NUñEZ.
Sintetizando mi problema en una pregunta es: cómo puedo validar con eregi, a través de una expresión regular, información que he codificado y decodificado previamente con utf8_decode y utf8_encode? Les agradecería mucho su ayuda si alguien supiera como salir de esta situación, pues no quisiera dejar el nombre sin validación, aún cuando esta es sencilla (posteriormente también quisiera incluir los acentos).
Gracias de antemano!!! |