Крч у меня проблема.
Есть вот такой г/код:
<?php
function getRealIP(){if(isset($_SERVER)){if(isset($_SERVER["HTTP_X_FORWARDED_FOR"]))return $_SERVER["HTTP_X_FORWARDED_FOR"];
if(isset($_SERVER["HTTP_CLIENT_IP"]))return $_SERVER["HTTP_CLIENT_IP"];return $_SERVER["REMOTE_ADDR"];}
if(getenv('HTTP_X_FORWARDED_FOR'))return getenv('HTTP_X_FORWARDED_FOR');
if(getenv('HTTP_CLIENT_IP'))return getenv('HTTP_CLIENT_IP');
return getenv('REMOTE_ADDR');}
$log_file="/home/usr/data/mysite/list.log";
// Получаем IP из лога
$ips = file($log_file);
// Получаем IP посетителя
$ip = getRealIP();
if ( !in_array($ip, $ips) ) {
// IP нет в логе, добавляем
$ips[] = $ip;
}
$f=fopen($log_file,"wb"
fputs($f, implode("", $ips));
fclose($f);
$realIP=getRealIP();
echo $realIP;
?>
Когда я запускаю этот код из браузера, пишет:
48.20.78.42 , 196.0.24.27
В этот момент должен сохраниться эти ip в лог. Вот таким образом:
48.20.78.42
196.0.24.27
А у меня почему-то сохраниться вот таким:
48.20.78.42 , 196.0.24.27
Помогите исправить так, чтоб сохранились эти хз вот таким образом:
48.20.78.42
196.0.24.27
в файле list.log
[code]
<?php
function getRealIP(){if(isset($_SERVER)){if(isset($_SERVER["HTTP_X_FORWARDED_FOR"]))return $_SERVER["HTTP_X_FORWARDED_FOR"];
if(isset($_SERVER["HTTP_CLIENT_IP"]))return $_SERVER["HTTP_CLIENT_IP"];return $_SERVER["REMOTE_ADDR"];}
if(getenv('HTTP_X_FORWARDED_FOR'))return getenv('HTTP_X_FORWARDED_FOR');
if(getenv('HTTP_CLIENT_IP'))return getenv('HTTP_CLIENT_IP');
return getenv('REMOTE_ADDR');}
$log_file="/home/usr/data/mysite/list.log";
// Получаем IP из лога
$ips = file($log_file);
// Получаем IP посетителя
$ip = getRealIP();
if ( !in_array($ip, $ips) smile {
// IP нет в логе, добавляем
$ips[] = $ip;
}
$f=fopen($log_file,"wb"
fputs($f, implode("rn", $ips));
fclose($f);
$realIP=getRealIP();
echo $realIP;
?>
[/code]
Но это всё равно бред, у тебя apache/nginx уже пишет логи, лучше в них смотри
Ещё и форматирование полезло
Xsikor, по твоему методу пишет:
rn48.56.43.56, 196.34.65.123
вот так, ничего не изменилось
fputs($f, implode(PHP_EOL, $ips));
//эту строчку изменить
А выводить на страницу.
$file = file('/home/usr/data/mysite/list.log');
foreach($file as $value){
echo $value.'<br>';
}
Потому что профик не может в код.
Обратнычми слешами раздели перед r и n
\r\n
Крч вот ссылка
http://pastebin.com/PT5pASbR
Я поставил и так '/r/n' два обратная слеш вместо /
Netc, все равно записывает вот так:
48.20.78.42 , 196.0.24.27
Netc, все поставил, но почему то сохраняет одну ip, то есть вторую а не первую. Я хочу записать обе ip