Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: darkxxx en 8 Octubre 2007, 05:00 AM

Título: problema con el manejo de archivos
Publicado por: darkxxx en 8 Octubre 2007, 05:00 AM
bueno señores hice un programa en php que copiara la direccion ip del visitante a un archivo de texto y que luego este la leyera para guardarla en un array ok todo fino cuando lo hice pero cuando quiero comparar si la ip del visitante es igual a alguna ip de el array que le dijiera que ya visito la pagina y si no que no ha visitado la pagina pero por mas cosas que le añado siempre me dice que no ha visitado la pagina que puede estar mal en el codigo

<?php

$archivo = "texto.txt";

$ip = $HTTP_SERVER_VARS['REMOTE_ADDR'];

$fp = fopen($archivo,"a");
fwrite($fp,$ip);
fwrite($fp,"\n");
fclose($fp);

$fp = fopen($archivo,"r");

while (!feof($fp)) {

$texto = fgets($fp);
$tex[] = nl2br($texto);

}

fclose($fp);

$cantidad = count($tex);

for ($i=0;$i<$cantidad;$i++) {
if ($tex[$i] == '$ip ') {
echo "ya visitastes la pagina";
break;
}
else {
echo "no has visitado la pagina";
break;
}
}


?>

en el archivo de texto esta guardada las ip una por cada linea es decir por ejemplo

127.0.0.1
127.0.0.1
127.0.0.1

los guarda bien en el array pero a la hora de compararla con la ip me dice siempre que ya ha visitado la pagina

de verdad les agradeceria su ayuda
Título: Re: problema con el manejo de archivos
Publicado por: alone-in-the-chat en 9 Octubre 2007, 21:23 PM

Si entendi mas o menos asi deberia ir el asunto


Código (php) [Seleccionar]

<?php

$archivo 
"texto.txt";

$ip $HTTP_SERVER_VARS['REMOTE_ADDR'];

$fp fopen($archivo,"r");
$flag =  false;
while (!
feof($fp)) 
{
$buffer trim(fgets($handle4096));

if ($buffer == $ip)
{
$flag true;
}
}
fclose($fp);

if (
$flag)
{
echo "ya visitaste la pagina";
}else{
echo "no has  visitado la pagina";
}

/*recien guarda la ip al final del script */
$fp fopen($archivo,"a"); 
fwrite($fp,$ip."\n");
fclose($fp);
?>


Título: Re: problema con el manejo de archivos
Publicado por: Ertai en 9 Octubre 2007, 23:44 PM
Un consejo: usa mejor la función in_array().

Saludos!