Имею следующий скрипт: HTML: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> </head> <body> <?php $email = $_POST['email'];// собираем введенные данные и записываемв переменные $text .= "$email \n"; // записываем в переменную то что собираемся писать в файл $ip=$_SERVER['REMOTE_ADDR'].date(" - время d.m.Y H:i:s")."\n"; if (!empty($email)) //если все переменные имеют значения выполняем запись в файл { $file = fopen ("log.txt", "a+"); //открываем для дозаписи файл message.txt лежаший в одной папке с текущей страницей fwrite ($file,$ip); // пишем в файл fwrite ($file,$text); // пишем в файл fclose ($file); // закрываем файл } ?> <form name="form1" method="post" action="up.php"> <label for="textfield"></label> <table border="0" cellspacing="0" cellpadding="0"> <tr> <td><label for="textfield">Message</label></td> <td><input type="text" name="email" id="email"></td> </tr> </table> <p> <label for="Submit"></label> <input type="submit" name="Submit" value="Сохранить" id="Submit"> </p> </form> </body> </html> Скрипт пишет в log.txt: Code: ip - время 09.01.2011 21:04:26 mail1 ip - время 09.01.2011 21:04:49 mail3 mail4 mail5 Суть проблемы в следующем: Скрипт должен записывать ip тот, с которого к нему обращались. То бишь если я окрашусь к скрипту site.com/script.php, то скрипт должен сделать запись вида: Code: мой ip - время 09.01.2011 21:04:26 mail Все пишет, вот только одна проблема - в лог записывается ip сервера, а не ip машины, что к нему обращалась. Скрипт лежит с правами 644 в отдельной директории на хостинге. Права на директорию 755, в чем проблема?
function GetRealIp() { if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip=$_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip=$_SERVER['REMOTE_ADDR']; } return $ip; }
Созай файл на сервере. PHP: <?php print_r($_SERVER); print_r($_ENV); ?> И скинь сюда Еще посмотри http://forum.nic.ru/archive/index.php/t-1520.html
Большое спасибо, только что дочитал ветку в ру-центре, попробовал внести изменения - получил положительный результат. Спешу отписать что все получилось и тут Вы с очередным верным советом. Еще раз спасибо.