Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: запись в файл "откуда пришол юзер" [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Без описания
foozzi
Отправлено: 03 Сентября, 2011 - 19:59:04
Post Id



Посетитель


Покинул форум
Сообщений всего: 283
Дата рег-ции: Май 2011  
Откуда: rm -rf /


Помог: 0 раз(а)




в коде White синтаксическая ошибка... но все написано верно, что за....?
исправил, и даже код укоротил, все равно пишет таким образом
CODE (htmlphp):
скопировать код в буфер обмена
  1. Адресс пользователя 31.***.***.52
  2. Откуда пришол
  3. Часовой пояс Europe/Moscow

то есть "Откуда пришол" ничего нет

вот укороченый код
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $fileref = 'ref.txt';
  4. $ip = 'Адресс пользователя ' . $_SERVER['REMOTE_ADDR'];
  5. $date_time = 'Часовой пояс ' . date_default_timezone_get();
  6. $link = 'Откуда пришол ' . $_SERVER['HTTP_REFERER'];
  7. $ref = "$ip\r" . "$link\r" . "$date_time";
  8.  
  9. if (!stristr($_SERVER['HTTP_REFERER'],"сайт.ru")) {
  10. // Проверка на запись
  11. if (is_writable($fileref)) {
  12.  if (!$handle = fopen($fileref, 'a')) {
  13.          echo "Не могу открыть файл ($fileref)";
  14.          exit;
  15.     }
  16.  
  17. // Запись  
  18. if (fwrite($handle, "$ref\r\n") === FALSE)
  19. {
  20.         echo "Не могу произвести запись в файл ($fileref)";
  21.         exit;
  22.     }
  23. // Закрываем файл    
  24.     fclose($handle);
  25.  
  26. } else {
  27.     echo "Файл $fileref недоступен для записи";
  28. }
  29.   }
  30. ?>

(Отредактировано автором: 03 Сентября, 2011 - 20:17:12)



-----
90% ошибок находятся в полуметре от монитора...
 
 Top
White
Отправлено: 03 Сентября, 2011 - 20:43:01
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




foozzi моего кода здесь нет, здесь есть ваш, в котором одна строка переместилась выше Подмигивание
HTTP_REFERER пустой когда:
1) адрес страницы введен прямо в строку запроса
2) ее нажали в закладках
3) клиент ее не поддерживает (экзотические браузеры, curl если не установлен соответствующий заголовок, поисковые роботы и еще много вариантов).
измените 6 строку на следующее:
PHP:
скопировать код в буфер обмена
  1. if($_SERVER['HTTP_REFERER']) $link = 'Откуда пришел ' . $_SERVER['HTTP_REFERER']; else $link = 'Откуда пришел неизвестно' ;

date_default_timezone_get() кстати читает настройки php.ini а не клиента.


-----
if(time()>1356048000) die();
 
 Top
foozzi
Отправлено: 03 Сентября, 2011 - 20:50:20
Post Id



Посетитель


Покинул форум
Сообщений всего: 283
Дата рег-ции: Май 2011  
Откуда: rm -rf /


Помог: 0 раз(а)




White а нельзя ли просто что бы не записывалось ничего, даже пробелов и переносов?

про date_default_timezone_get() спс, не знал... прост один умник посоветовал...


-----
90% ошибок находятся в полуметре от монитора...
 
 Top
White
Отправлено: 03 Сентября, 2011 - 23:12:35
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




тогда так
PHP:
скопировать код в буфер обмена
  1. if ($_SERVER['HTTP_REFERER'] and !stristr($_SERVER['HTTP_REFERER'],"сайт.ru")) {
  2.         $fileref = 'ref.txt';
  3.         $ip = 'Адресс пользователя ' . $_SERVER['REMOTE_ADDR'];
  4.         $link = 'Откуда пришол ' . $_SERVER['HTTP_REFERER'];
  5.         $ref = "$ip\r\n" . "$link\r\n";
  6.         if (is_writable($fileref)) {
  7.                 if (!$handle = fopen($fileref, 'a')) die("Не могу открыть файл ($fileref)");
  8.                 if (fwrite($handle, "$ref\r\n") === FALSE) die("Не могу произвести запись в файл ($fileref)");
  9.                 fclose($handle);
  10.         } else echo "Файл $fileref недоступен для записи";
  11. }


-----
if(time()>1356048000) die();
 
 Top
foozzi
Отправлено: 04 Сентября, 2011 - 20:04:22
Post Id



Посетитель


Покинул форум
Сообщений всего: 283
Дата рег-ции: Май 2011  
Откуда: rm -rf /


Помог: 0 раз(а)




спс проде норм теперь


Цитата:
Днепропетровск

почти земляки)


-----
90% ошибок находятся в полуметре от монитора...
 
 Top
DeepVarvar Супермодератор
Отправлено: 04 Сентября, 2011 - 21:45:45
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




foozzi пишет:
почти земляки)

foozzi пишет:
/usr/local/foozzi

Радость Радость Радость
 
 Top
White
Отправлено: 04 Сентября, 2011 - 22:41:43
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)





foozzi пишет:
/usr/local/foozzi
тогда не земляки, я из /home/some_user Радость


-----
if(time()>1356048000) die();
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB