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
Si entendi mas o menos asi deberia ir el asunto
<?php
$archivo = "texto.txt";
$ip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
$fp = fopen($archivo,"r");
$flag = false;
while (!feof($fp))
{
$buffer = trim(fgets($handle, 4096));
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);
?>
Un consejo: usa mejor la función in_array().
Saludos!