Foros del Web » Programando para Internet » PHP »

problema con filtro de contenido de variable en php

Estas en el tema de problema con filtro de contenido de variable en php en el foro de PHP en Foros del Web. Tengo un pequeño problema hice este código para filtrar el contenido de las variables que vienen de un form de html, sin embargo para casos ...
  #1 (permalink)  
Antiguo 04/10/2008, 01:28
 
Fecha de Ingreso: octubre-2008
Mensajes: 26
Antigüedad: 15 años, 6 meses
Puntos: 0
problema con filtro de contenido de variable en php

Tengo un pequeño problema hice este código para filtrar el contenido de las variables que vienen de un form de html, sin embargo para casos como el nombre a veces son dos y obviamente se necesita dar un espacio entre ambos nombres.
Mi pregunta es como hago para que en el condicional que dice que solo deben ser letras tambien se respeten los espacios ya que me marca que solo debe contener letras cuando quiero poner dos nombres con espacio o sea que el problema son los espacios que doy entre palabras como puedo solucionarlo?
Código PHP:
//SE VALIDA QUE LAS CAJAS DE TEXTO NO ESTEN VACIAS
if($_POST[nombre]==""){
$Errornom="El nombre esta vacio";
$cuentaErrores++;
            }
/* aqui es donde no puedo dar espacios 
entre palabras ya que marca el error que solo 
deben de ser letras*/

else  if(!ctype_alpha($_POST[nombre])){
$Errornom="El nombre solo deben ser letras";    
$cuentaErrores++;                                        

  #2 (permalink)  
Antiguo 04/10/2008, 01:41
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema con filtro de contenido de variable en php

las expresiones regulares son mejores para esto...

ejemplo:
Código PHP:
if (preg_match('/^[a-zA-Z\s]+$/'$variable))
{
  
// letras y espacios... 

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 04/10/2008 a las 03:48
  #3 (permalink)  
Antiguo 04/10/2008, 02:03
 
Fecha de Ingreso: octubre-2008
Mensajes: 26
Antigüedad: 15 años, 6 meses
Puntos: 0
Pregunta Respuesta: problema con filtro de contenido de variable en php

Cita:
Iniciado por pateketrueke Ver Mensaje
las expresiones regulares son mejores para esto...

ejemplo:
Código PHP:
preg_match('/^[a-zA-Z\s]+$/'$variable))
{
  
// letras y espacios... 

No pues realmente no me funciona este código no se si lleva ; al final de la funcion por que marca error desde un pricipio ademas falta un parentesis podrias corregirlo por favor
  #4 (permalink)  
Antiguo 04/10/2008, 03:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema con filtro de contenido de variable en php

no seas gracioso, no se trata de copiar y pegar a ver que pasa...

ya corregido, solo falto el if (

espero te ayude, suerte?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 04/10/2008, 19:44
 
Fecha de Ingreso: octubre-2008
Mensajes: 26
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: problema con filtro de contenido de variable en php

no me funciona no hace nada, ya modifique lo que me dijiste ya da espacios pero si introduzco numeros no marca el error es como si no hiciera nada el preg_match();
Código PHP:
if($_POST[nombre]=="")
            {
$Errornom="El campo Nombre esta vacio";
$cuentaErrores++;
                }
                
else   
if(!
preg_match("/^[a-zA-Z\s]+$/",$_POST[nombre]))
              { 
   
$Errornom="El campo Nombre deben de ser letras";
$cuentaErrores++;

  #6 (permalink)  
Antiguo 04/10/2008, 21:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema con filtro de contenido de variable en php

Cita:
solo deben ser letras tambien se respeten los espacios
¿entonces... números también?? (decídete)

agrega un grupo mas.... 0-9

PDTA: lee la documentación, investiga.... no te remitas tan solo a esperar del foro

http://php.net/pcre
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 04/10/2008, 22:20
 
Fecha de Ingreso: octubre-2008
Mensajes: 26
Antigüedad: 15 años, 6 meses
Puntos: 0
De acuerdo Respuesta: problema con filtro de contenido de variable en php

Creo que no se entendio mi finalidad desde un principio. Si notas mi código he puesto el signo de negacion !; if(!ctype_alpha($_POST[nombre])) esto significa que cualquier caracter que sea ¡¡¡¡¡¡ diferente !!!!!!!!!! de las letras del alfabeto marca el error. Mi problema es que al dar espacios tambien me marca el error cuando pongo _____palabras con espacios _____lo unico que yo pedia es como solucionar el problema de los espacios es por eso que tambien nege el if(!preg_match("/^[a-zA-Z\s]+$/",$_POST[nombre])) pero no hace ningun efecto. De todas maneras gracias por tu tiempo.
  #8 (permalink)  
Antiguo 04/10/2008, 22:59
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: problema con filtro de contenido de variable en php

Entonces no debes usar el signo de "!".
Porque si lo pones al preg_match dices: "Si tal cadena no concuerda con el patron, haz esto(setea una variable de error en tu caso)".
En tu caso el patron es a-zA-z, contrario a lo que quieres hacer.

Se puede resolver haciendolo de la siguiente manera;
if(preg_match("/^[^a-zA-Z\s]+$/",$_POST[nombre]))

Fijate en el ^ que esta en negrita. Cuando el signo ^ esta dentro de corchetes, se usa para negar.
Si dejas el patron asi como te dice estas diciendo:
"Si la expresion regular es cualquier cosa excepto caracteres alfabeticos y espacio, continua".
Ya luego pones un else para setear el error, o usas ! para ya asi negar.
  #9 (permalink)  
Antiguo 05/10/2008, 17:02
 
Fecha de Ingreso: octubre-2008
Mensajes: 26
Antigüedad: 15 años, 6 meses
Puntos: 0
De acuerdo Respuesta: problema con filtro de contenido de variable en php

Gracias amigos Ronruby y pateketrueke justo lo que necesitaba. Pido una disculpa por ser tan reiterativo pero es que me habia quedado en el pasado en la programacion procedural de C. Desconocia del potencial de esta funcion y de las muchas otras que hay en php. Funciona correctamente. muy agradecido
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:36.