Foros del Web » Programando para Internet » PHP »

Ayuda con strpos()

Estas en el tema de Ayuda con strpos() en el foro de PHP en Foros del Web. Hola: Necesito utilizar esta funcion para filtrar una serie de palabras de un formulario y no logro que las sentencias If() que se emplean comparen ...
  #1 (permalink)  
Antiguo 11/06/2006, 08:35
 
Fecha de Ingreso: marzo-2004
Ubicación: Pergamino
Mensajes: 6
Antigüedad: 13 años, 9 meses
Puntos: 0
Ayuda con strpos()

Hola:

Necesito utilizar esta funcion para filtrar una serie de palabras de un formulario y no logro que las sentencias If() que se emplean comparen el resultado de la funcion strpos()

Aqui les paso el codigo:

$palabras_a_filtrar = "none,ninki,droga";
$array_palabras = split(",", $palabras_a_filtrar);
// campos del formulario
$buscar = $nombre . " " . $from;

for ($i=0;$array_palabras[$i] ;$i++ ) {
//verifico los campos
$flag = strpos(strtolower($buscar), $array_palabras[$i]);
if ($flag>=0) break;
}


Comentarios:
si mal no entiendo la funcion strpos() entrega la posicion donde comienza una palabra dentro de una cadena. Si lo anterior esta correcto, la primer sentencia If() deberia se >=0 cuando encuentra dicha palabra y salir del bucle.
Pregunta: si no se encuentra la palabra cual es el valor que recibe $flag?

Agradezco su respuesta.
  #2 (permalink)  
Antiguo 11/06/2006, 09:16
okram
Invitado
 
Mensajes: n/a
Puntos:
Si no se encuantra coincidencias, el valor devuelto es 0

Pero no entiendo bien tu codigo... que haces en el bucle?
que pasas si se encuentra una coincidencia?

porque lo ideal seria que solo si $flag=0 se deberia salir del bucle, sino se deberia seguir verificando...

no entiendo bien lo que quieres hacer

Salu2
  #3 (permalink)  
Antiguo 11/06/2006, 09:26
 
Fecha de Ingreso: marzo-2004
Ubicación: Pergamino
Mensajes: 6
Antigüedad: 13 años, 9 meses
Puntos: 0
Cita:
Iniciado por okram
Si no se encuantra coincidencias, el valor devuelto es 0

Pero no entiendo bien tu codigo... que haces en el bucle?
que pasas si se encuentra una coincidencia?

porque lo ideal seria que solo si $flag=0 se deberia salir del bucle, sino se deberia seguir verificando...

no entiendo bien lo que quieres hacer

Salu2
Gracias por responder:

el bucle va comparando un texto con varias palabras (son los campos del formulario) con un array de palabras que se desean filtrar. Cuando encuentra la palabra a filtrar, se sale del bucle y $flag mantiene la posicion de donde se encuentra la palabra filtrada (esta puede ser 0 o mayor que 0)

Hasta aqui todo bien, el problema venia cuando intentaba comparar el valor de $flag con una sentencia if. Debo acotar que si strpos no encuentra la palabra no entrega 0, sino que la carga con Null o "" y esto hace que la sentencia if utilizando un comparador aritmetico no funcione.

La solucion:
en lugar de emplear
if ($flag>=0)
se emplea
if ($flag!==False)

De todos modos Gracias y espero puedan utilizar este script para solucionar el SPAM por Formularios, ya que he probado filtrarlos por el panel de control de host pero no funciona.

Slds.
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:37.