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
Форумы портала PHP.SU :: Версия для печати :: Счетчик Online Пользователей
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Счетчик Online Пользователей

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

1. Mr.KreDo - 12 Апреля, 2011 - 22:45:07 - перейти к сообщению
Всем Добрый Вечер.

Есть скрипт который показывает ( Сколько человек в данный момент на сайте )

Решил сделать ( когда 1 человек на сайте что бы так и писал, а когда 2 человека что бы писал именно 2 человека, и т.д )

Есть ли другие способы, реализовать это ?
Этот способ мне кажется не надежный...

Вот пример кода который я сделал.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. #подключение к MYSQL  
  4. include('inc/connect.php');
  5.  
  6. # Счетчик Online Пользователей
  7. function online () {
  8. $ip=getenv("HTTP_X_FORWARDED_FOR");
  9. if (empty($ip) || $ip=='unknown') { $ip=getenv("REMOTE_ADDR"); }
  10. # уд. старые сессии
  11. mysql_query ("DELETE FROM online WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(time) > 300") or die ("Can't delete old sess");
  12.  
  13. # проверка на присутстаие или занесение нового пользователя
  14. $select = mysql_query ("SELECT ip FROM online WHERE ip='$ip'") or die ("Can't select duble");
  15. $tmp = mysql_fetch_row ($select);
  16. if ($ip == $tmp[0]) {
  17. #mysql_query ("UPDATE online SET time=NOW() WHERE ip='$ip'") or die ("Can't update");
  18. mysql_query ("UPDATE online SET login='$_SESSION[user_admin_sp] $_SESSION[user_guest_sp]', link='Xz', time=NOW() WHERE ip='$ip'") or die ("Can't update");
  19. } else {
  20. mysql_query ("INSERT INTO online (ip,time) VALUES ('$ip',NOW())") or die ("Can't insert");
  21. }
  22. # считывание результатов
  23. $select = mysql_query ("SELECT COUNT(*) FROM online") or die ("Can't select result");
  24. $tmp = mysql_fetch_row ($select);
  25. $result = $tmp[0];
  26.  
  27. return $result;
  28. }
  29.  
  30. $comments=online();
  31.  
  32. if ($comments<=1) //выводит когда 1 человек на сайте
  33. {
  34.  
  35. echo "<center>Всего Online: <b>".online()."</b> Человек</center>";
  36.  
  37. }
  38.  
  39. if ($comments>=2) //выводит когда 2 человека на сайте
  40. {
  41.  
  42. echo "<center>Всего Online: <b>".online()."</b> Человека</center>";
  43.  
  44. }
  45.  
  46. if ($comments>=3) //выводит когда 3 человека на сайте
  47. {
  48.  
  49. echo "<center>Всего Online: <b>".online()."</b> Человека</center>";
  50.  
  51. }
  52.  
  53. if ($comments>=4) //выводит когда 4 человека на сайте
  54. {
  55.  
  56. echo "<center>Всего Online: <b>".online()."</b> Человека</center>";
  57.  
  58. }
  59.  
  60. if ($comments>=5) //выводит когда 5 человек на сайте
  61. {
  62.  
  63. echo "<center>Всего Online: <b>".online()."</b> Человек</center>";
  64.  
  65. }
  66. ?>


Прошу помощи.
2. valenok - 12 Апреля, 2011 - 23:02:01 - перейти к сообщению
3. Mr.KreDo - 13 Апреля, 2011 - 20:45:59 - перейти к сообщению
Возник еще вопрос, что бы не создавать еще раз тему, напишу тут.

есть код который заносит информацию о пользователе который сейчас на сайте, в базу данных:
PHP:
скопировать код в буфер обмена
  1. mysql_query ("UPDATE online SET login='$_SESSION[user_admin_sp] $_SESSION[user_guest_sp]', link='Xz', time=NOW() WHERE ip='$ip'") or die ("Can't update");


хотел сделать так что бы, заносилась ссылка на страницу на которой он находится
про бывал через глобальный массив $SERVER

но я заметил что глобальный массив $SERVER ( к примеру выводится только так echo $_SERVER['REMOTE_ADDR']; )
у меня не выходит, осуществить этот вариант.
выводит синтаксическую ошибку

пример:
PHP:
скопировать код в буфер обмена
  1. mysql_query ("UPDATE online SET login='$_SESSION[user_admin_sp] $_SESSION[user_guest_sp]', link='$_SERVER['REMOTE_ADDR']', time=NOW() WHERE ip='$ip'") or die ("Can't update");


может я что то не так делаю ?
4. DeepVarvar - 13 Апреля, 2011 - 21:27:06 - перейти к сообщению

точечки.
5. Mr.KreDo - 13 Апреля, 2011 - 21:31:51 - перейти к сообщению
DeepVarvar

этот вариант, выдаст и выдает ошибку
PHP:
скопировать код в буфер обмена
  1. Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/wm33744/public_html/includes/left_menu.php on line 37
6. OrmaJever - 13 Апреля, 2011 - 21:37:50 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. mysql_query ("UPDATE online SET login='{$_SESSION['user_admin_sp']} {$_SESSION['user_guest_sp']}', `link`='{$_SERVER['REMOTE_ADDR']}', `time`=NOW() WHERE ip='$ip'") or die ("Can't update");
7. Mr.KreDo - 13 Апреля, 2011 - 21:44:36 - перейти к сообщению
OrmaJever

спасибо, работает.

 

Powered by ExBB FM 1.0 RC1