{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
1.
ibni * 0.01
[автор] (18 июл 2016, 12:55) [0/0] [0] [отв] [спам] [под] +1 | -1

Крч у меня проблема.
Есть вот такой г/код:
<?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

2.
Xsikor * 0.06
(18 июл 2016, 13:29) [0/0] [0] [отв] [спам] [под] +1 | -1

[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 уже пишет логи, лучше в них смотри

Ещё и форматирование полезло


Изм. 1 раз. / Посл. изм.
Xsikor * 0.06
(18 июл 2016, 13:30)
3.
ibni * 0.01
[автор] (18 июл 2016, 14:48) [0/0] [0] [отв] [спам] [под] +1 | -1

Xsikor, по твоему методу пишет:
rn48.56.43.56, 196.34.65.123
вот так, ничего не изменилось

4.
bibilink * 19.01
(18 июл 2016, 14:51) [0/0] [0] [отв] [спам] [под] +1 | -1

fputs($f, implode(PHP_EOL, $ips));
//эту строчку изменить

А выводить на страницу.

$file = file('/home/usr/data/mysite/list.log');

foreach($file as $value){

echo $value.'<br>';

}

5.
Xsikor * 0.06
(18 июл 2016, 14:54) [0/0] [0] [отв] [спам] [под] +1 | -1

Потому что профик не может в код.
Обратнычми слешами раздели перед r и n
\r\n

Крч вот ссылка
http://pastebin.com/PT5pASbR


Изм. 2 раз. / Посл. изм.
Xsikor * 0.06
(18 июл 2016, 14:55)
6.
ibni * 0.01
[автор] (18 июл 2016, 15:20) [0/0] [0] [отв] [спам] [под] +1 | -1

Я поставил и так '/r/n' два обратная слеш вместо /

7.
Xsikor * 0.06
(18 июл 2016, 15:24) [0/0] [0] [отв] [спам] [под] +1 | -1

ibni, это не обратный слеш

8.
Netc * 0.13
(18 июл 2016, 15:38) [0/0] [0] [отв] [спам] [под] +1 | -1

Когда я запускаю этот код из браузера, пишет:
48.20.78.42 , 196.0.24.27


48.20.78.42 , 196.0.24.27 - это вывод HTTP_X_FORWARDED_FOR, выдаётся прокси и реальный IP пользователя, тут разделитель строки не поможет.

после строки:
[code]
<?php
// Получаем IP посетителя
$ip = getRealIP();
?>
[/code]

нужно добавить:
[code]
<?php
# Получаем реальный IP
if(strpos($ip, "," ) !== false) list($proxy, $ip) = explode(",", $ip);
?>
[/code]


Изм. 5 раз. / Посл. изм.
Netc * 0.13
(18 июл 2016, 16:05)
9.
ibni * 0.01
[автор] (18 июл 2016, 18:26) [0/0] [0] [отв] [спам] [под] +1 | -1

Netc, все равно записывает вот так:

48.20.78.42 , 196.0.24.27

10.
ibni * 0.01
[автор] (18 июл 2016, 18:30) [0/0] [0] [отв] [спам] [под] +1 | -1

Netc, все поставил, но почему то сохраняет одну ip, то есть вторую а не первую. Я хочу записать обе ip

Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 1
Скачать тему | Файлы темы | Фильтр сообщений