Tienes toda la razón Hidek1, no puedo hacer lo que he hecho, sobre todo preguntar sin documentar bien la pregunta. Supongo que es parte de lo ciego que estaba cuando la hice por primera vez.
Voy a reflejar lo que hay realmente en la web para poder detectar el error adecuadamente.
Código PHP:
if (empty($_POST) === false) {
if (empty($_POST['name']) === true) {
$errors[] = '* El campo <u>Nombre</u> es obligatorio.';
}elseif (preg_match('/[^A-Za-z áéíóúÁÉÍÓÚñÑçÇ-]+/', $_POST['name']) == 1) {
$errors[] = 'El campo <u>Nombre</u> sólo puede contener caracteres alfabéticos y/o el - (guión normal).';
}
}
Sobre
PUNTO 1 Hidek1 creo que has interpretado mal el código, pues $_POST está encerrado entre paréntesis. De todas formas, queda abierta la respuesta, porque cierto es que hay más cosas.
Con respecto al
PUNTO 2, falta el cuantificador, cierto. Aunque sí que lo estaba poniendo, seguro que en alguna de las pruebas que realicé antes de preguntar, en una de esas -a la desesperada-, pues lo quité y así me va...
¡qué borriquito!
¡Cegatone Malone!
Con respecto al
PUNTO 3 no sé si será lo correcto, pero tengo esto dentro de <head>
Sobre REGEXBUDDY
PUNTO 4, te diré que lo he tenido instalado, pero ya no. En aquel momento, se me hizo un mundo tan grande, que lo desestimé. Tendré que volver a instalarlo y sacarle rendimiento. Gracias Hidek1 por recordarme. Mientras trato de resolver, dejo aún la pregunta abierta.
---
Cita:
Iniciado por Hidek1 bueno estás bastante lejos de la respuesta.. todo mal :'D
Código PHP:
if (preg_match('/[^A-Za-z áéíóúÁÉÍÓÚñÑçÇ-]/', $_POST['name']) == 1) {
PUNTO 1
$_POST['name']) == 1 .. es una condición, como resultado dará un boolean, y en la documentación de PHP dice que el segundo parámetro debe ser un String, el cual es el que se evaluará la expresión regular.
PUNTO 2
En la expresión regular estás omitiendo el caracter cuantificador.. por lo cual esa expresión sólo sirve si se trata de un solo caracter. ([url]http://www.php.net/manual/en/regexp.reference.meta.php[/url])
PUNTO 3
para el correcto funcionamiento de los tildes dentro de la expresión debes asegurarte de guardar el documento con la codificación adecuada o en su defecto utilizar expresiones unicode ([url]http://php.net/manual/en/regexp.reference.unicode.php[/url])
PUNTO 4
para el tema de las expresiones regulares te recomiendo bastante utilices un programa llamado REGEXBUDDY, con el puedes testear fácilmente tus regex.
saludos.