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 :: нужна помошь

 PHP.SU

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


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

> Без описания
php6
Отправлено: 13 Февраля, 2009 - 17:55:47
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Янв. 2009  


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




PHP:
скопировать код в буфер обмена
  1.  
  2. if        ($ip_address=$_SERVER[]);
  3. elseif  ($ip_address=$_SERVER['HTTP_USER_AGENT']);
  4. else   { $ip_address=$_SERVER["REMOTE_ADDR"]; }
  5. if       (substr_count($ip_address,"unknown")) {
  6. $ip_address=$_SERVER["REMOTE_ADDR"];}
  7. $row['ld'].="1|".$lt.'|'.$ip_address.'@';
  8. mysql_query ("UPDATE `chars` SET `ips`='".$row['ld']."' WHERE `uid`='".$row['uid']."';");
  9.  


решил сделать чтоб постоянно при входе в кабинет писалось в отчётах данный по айпи адресу но что то не хочет работать ((
 
 Top
valenok Модератор
Отправлено: 13 Февраля, 2009 - 17:59:29
Post Id



Здесь могла бы быть ваша реклама


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


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




http://php.net/operators

(Отредактировано автором: 13 Февраля, 2009 - 17:59:48)



-----
Truly yours, Sasha.
 
My status
 Top
EuGen Администратор
Отправлено: 13 Февраля, 2009 - 18:00:20
Post Id


Профессионал


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


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




А что за нагромождение
CODE (text):
скопировать код в буфер обмена
  1.  
  2. if        ($ip_address=$_SERVER[]);
  3. elseif  ($ip_address=$_SERVER['HTTP_USER_AGENT']);
  4. else   { $ip_address=$_SERVER["REMOTE_ADDR"]; }
  5. if       (substr_count($ip_address,"unknown")) {
  6.  

?
Почему просто не сделать:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. mysql_query ("UPDATE `chars` SET `ips`='".
  4. $_SERVER['REMOTE_ADDR']."' WHERE `uid`='".$row['uid']);
  5. ?>
  6.  

?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
php6
Отправлено: 13 Февраля, 2009 - 18:09:33
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Янв. 2009  


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




".$row['ld']." это отдельная строка и она обязательная в неё пишутся не только ип адрес но и многое другое
 
 Top
vitaliy_mad
Отправлено: 13 Февраля, 2009 - 19:46:53
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


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




замени из примера EuGen
EuGen пишет:
mysql_query ("UPDATE `chars` SET `ips`='".
$_SERVER['REMOTE_ADDR']."' WHERE `uid`='".$row['uid']);

на вот это
CODE (text):
скопировать код в буфер обмена
  1.  
  2. $row['ld'].="1|".$lt.'|'.$_SERVER['REMOTE_ADDR'].'@';
  3. mysql_query ("UPDATE `chars` SET `ips`='".$row['ld']."' WHERE `uid`='".$row['uid']);

и будет счастье. будет оно выполнять то что по иде должен был выполнять твой пример в первом посте

(Отредактировано автором: 13 Февраля, 2009 - 19:49:17)

 
 Top
php6
Отправлено: 13 Февраля, 2009 - 21:30:17
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Янв. 2009  


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




не пашет ((( в бд ничё не заносит
бд chars поле ips текст 255 Огорчение
 
 Top
vitaliy_mad
Отправлено: 13 Февраля, 2009 - 21:42:14
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


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




php6 пишет:
не пашет ((( в бд ничё не заносит
заносить и не должно.. эти запросы изменяют существующие записи...
 
 Top
Leviafant
Отправлено: 13 Февраля, 2009 - 22:05:33
Post Id



Новичок


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


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




вот делал для себя, делал под phpbb, если работать не будет переделайте запрос на запись в базу
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. if (getenv('HTTP_X_FORWARDED_FOR'))
  4. {
  5. $ip = getenv('HTTP_X_FORWARDED_FOR');
  6. }
  7. else
  8. {
  9. $ip = getenv('REMOTE_ADDR');
  10. }
  11.  
  12. if (getenv('HTTP_USER_AGENT'))
  13. {
  14. $ip1 = getenv('HTTP_USER_AGENT');
  15. }
  16. else
  17. {
  18. $ip1 = getenv('REMOTE_ADDR');
  19. }
  20.  
  21. if (getenv('HTTP_REFERER'))
  22. {
  23. $ip2 = getenv('HTTP_REFERER');
  24. }
  25. else
  26. {
  27. $ip2 = getenv('REMOTE_ADDR');
  28. }
  29.  
  30. if (getenv('HTTP_COOKIE'))
  31. {
  32. $cokie = getenv('HTTP_COOKIE');
  33. }
  34. else
  35. {
  36. $cokie = getenv('REMOTE_ADDR');
  37. }
  38.  
  39.         $sql = "INSERT INTO stat
  40.                 VALUES (".time().", '".$user->data['username']."', '$ip', '$ip1', '$ip2')";
  41.         $db->sql_query($sql);
  42. ?>
  43.  


-----
Пока Рок жив буду жить и Я
 
 Top
php6
Отправлено: 13 Февраля, 2009 - 22:17:13
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Янв. 2009  


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




как сделать тогда чтоб только при первом входе каждый раз заносило в бд айпи с которого зашли?
 
 Top
vitaliy_mad
Отправлено: 13 Февраля, 2009 - 23:07:16
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


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




php6 пишет:
как сделать тогда чтоб только при первом входе каждый раз заносило в бд айпи с которого зашли?

первый вход за сессию, за сутки, за час??? что имеется ввиду под первым входом?
если за сессию то так:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. start_session();
  3. if (!isset($_SESSION['ses']))
  4. {
  5.    $ses=rand(100000,999999);
  6.    $q="INSERT INTO `table` (`ip`,`timestamp`) VALUES ('".$_SERVER['REMOTE_ADDR']."',now())";
  7.    $r=myswl_query($q);
  8.    $_SESSION['ses']=$ses;
  9. }
  10. ?>

(Отредактировано автором: 13 Февраля, 2009 - 23:08:25)

 
 Top
php6
Отправлено: 13 Февраля, 2009 - 23:31:13
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Янв. 2009  


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




я нмею ввиду что вообще по входам . т .е что когда он заходит ставится время типо 12.09.2009 вход с айпи 10.59.45.67 опера 9.2

как такое сделать?
и всё это заносится в бд.
 
 Top
vitaliy_mad
Отправлено: 13 Февраля, 2009 - 23:33:50
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


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




php6 пишет:
я нмею ввиду что вообще по входам

при авторизации что ли? при каком входе? попробуйте выразиться понятнее... может пример привести... входит на каждую строаницу или куда входит то???
 
 Top
php6
Отправлено: 13 Февраля, 2009 - 23:46:41
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Янв. 2009  


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




vitaliy_mad пишет:
при авторизации что ли? при каком входе? попробуйте выразиться понятнее... может пример привести... входит на каждую строаницу или куда входит то???


вот у меня движок онлайн игры и как во всех играх я хочу сделать отчёт по входам в игру данным персонажем чтоб юзер мог глянуть в него и посмотреть никто ли кроме него больше евошним персонажем не входил или не был ли взлом. при каждом входе персонажем в игру делается запись вида :12.09.2009 вход с айпи 10.59.45.67 опера 9.2
 
 Top
vitaliy_mad
Отправлено: 14 Февраля, 2009 - 00:00:44
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


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




значит все таки по сессии

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. start_session();
  3. if (!isset($_SESSION['ses']))
  4. {
  5.    $ses=rand(100000,999999);
  6.    $q="INSERT INTO `table` (`ip`,`timestamp`,`brow`) VALUES ('".$_SERVER['REMOTE_ADDR']."',".time().",'".$HTTP_USER_AGENT."')";
  7.    $r=myswl_query($q);
  8.    $_SESSION['ses']=$ses;
  9. }
  10. ?>

в результате в поле ip - будет храниться IP - клиента, а в поле timestamp - unixtime входа. браузер в поле brow
 
 Top
php6
Отправлено: 14 Февраля, 2009 - 00:19:13
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Янв. 2009  


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




CODE (text):
скопировать код в буфер обмена
  1. --
  2. -- Структура таблицы `chars`
  3. --
  4.  
  5. CREATE TABLE `chars` (
  6.   `ips` varchar(255) default NULL,
  7.   `timestamp` date NOT NULL,
  8.   `brow` text NOT NULL
  9. ) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
  10.  
  11. --
  12. -- Дамп данных таблицы `chars`
  13. --
  14.  


может неверно таблицу сделал? не пишет он в бд запись вообще ((
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB