Welcome, Guest. Please Login or Register.
October 31, 2024, 11:03:53 PM
Home Help Search Log in Register
News: SMF is the next generation in forum software, almost completely re-written from the ground up, make sure you don't fall for cheap imitations that suffer from feature bloat!

YaBB SE Community  |  German User Help  |  Hilfe zu YaBB SE  |  User Online (Chat) « previous next »
Pages: [1] Reply Ignore Print
Author Topic: User Online (Chat)  (Read 4459 times)
proxxyd
Jr. Member
**
Posts: 76


F.E.T

User Online (Chat)
« on: January 23, 2004, 11:58:51 AM »
Reply with quote

YaBB SE Version: 1.5.4
PHP Version: 4.3.2
MySQL Version: 4.0.x
Server Plattform: Unix, Linux, or BSD
Link zum Forum:

Problem Beschreibung:
hallo zusammen,
ich habe einen externen chat eingebau und möchte nun die chat-online-usernamen im Forum anzeigen lassen.
im chatordner befindet sich eine datei chat_online.php, die die online user anzeigen lässt. in dieser datei steht folgende:
Quote<?php
# (c) Viktor Widiker http://www.widiker.de, Berlin 2003
include("settings.inc.php");
if ($ist_user==0 || $_user->chat_raum=="0") { include("commands/fehler.inc.php"); }
include("design/$_DESIGN/online.inc.php");
site_top1();
echo "
<p align='right' style='margin-bottom:2pt'><small>
<a href='$_SELF?op=chat&act=online'>aktualisieren</a> <a href='chat_smilies.php'>smilies</a>
</small></p>
";
site_top2();
$e=mysql_query("SELECT * FROM $_T_CHAT_ROOMS WHERE id='$_user->chat_raum'",$v);
$r=mysql_fetch_object($e);
$e=mysql_query("SELECT nick,status FROM ".$_T_USERS." WHERE chat_raum='$_user->chat_raum' ORDER BY nick",$v);
$a=mysql_num_rows($e);
echo "<b>$r->name</b><br>".$a." User online<br>";
while ($r=mysql_fetch_object($e)) {
echo "<a href='#' onclick=\"javascript:window.open('chat_user.php?n=".$r->nick."','".$r->nick."','width=407,height=540,scrollbars=yes');\">";
if ($r->status>"1") { echo "<b>"; }
echo $r->nick."</b></a>";
#if ($r->status>"1") { echo " <small>(admin)</small>"; }
echo "<br>\n";
}
site_bottom();
?>

kann mir bitte jemand helfen und mir sagen, wie ich das anstellen soll?

mfg, dani
« Last Edit: January 25, 2004, 06:23:27 PM by proxxyd » Logged
Ironman
Guest
Re:User Online (Chat)
« Reply #1 on: January 23, 2004, 11:03:13 PM »
Reply with quote

Hi, also ich würde es mit einem include-Befehl im Template versuchen. Z.B.:
<? include ('pfad/zur/chat_online.php'); ?>
Logged
proxxyd
Jr. Member
**
Posts: 76


F.E.T

Re:User Online (Chat)
« Reply #2 on: January 24, 2004, 09:40:59 AM »
Reply with quote

danke für deine antwort,das geht aber nicht, weil man im chat eingelogt sein muss, um die obenstehende php korekt anzeigen zu lassen. ???
Logged
proxxyd
Jr. Member
**
Posts: 76


F.E.T

Re:User Online (Chat)
« Reply #3 on: January 24, 2004, 09:49:15 AM »
Reply with quote

ich habehier noch ein schnippsel aus der index.php, diese lässt die onlinebesucher auch anzeigen, wenn ich den schnippsel aber einfüge, funktioniert es nicht:

Quotefunction chat_online() {
global $_T_USERS,$v;
$ergebnis=mysql_query("SELECT COUNT(DISTINCT nick) FROM $_T_USERS WHERE chat_raum>'0'",$v);
$i=mysql_fetch_array($ergebnis); $chat_gesamt=$i[0];
if ($chat_gesamt>0) { if ($chat_gesamt==1) { $a="ist 1"; } else { $a="sind ".$chat_gesamt; } }
else { $a="keine"; }
echo "<b>Zurzeit ".$a." User online</b><br><br>";
}

bitte um hilfe, ich möchte die online-chatuser im kopfteil von yabbse einbauen, danke
Logged
proxxyd
Jr. Member
**
Posts: 76


F.E.T

Re:User Online (Chat)
« Reply #4 on: January 24, 2004, 07:53:43 PM »
Reply with quote

habe mal selber was gebastelt, funktioniert leider nicht, wer findet den fehler?
QuoteParse error: parse error in /home/www/web363/html/yabbse/kreta-chat/online.php on line 17

Quote<?php
$link = mysql_connect("localhost", "web", "hgfchgc")
  or die("Keine Verbindung möglich: " . mysql_error());

mysql_select_db("usr-hjjk ") or die("Auswahl der Datenbank fehlgeschlagen");

/* ausführen einer SQL Anfrage */
$query = "SELECT * FROM wichat_users WHERE chat_raum=3 ORDER BY nick;";

/* Ausgabe der Ergebnisse in HTML */
$result=mysql_query("SELECT COUNT(DISTINCT nick) FROM wichat_users  WHERE chat_raum>'0'",$v);
$i=mysql_fetch_array($result); $chat_gesamt=$i[0];
if ($chat_gesamt>0) { if ($chat_gesamt==1) { $a="ist 1"; } else { $a="sind ".$chat_gesamt; } }
else { $a="keine"; }
echo "<b>Zurzeit ".$a." User online</b><br><br>";
}

/* Freigeben des Resultsets */
mysql_free_result($result);

/* schliessen der Verbinung */
mysql_close($link);
?>
Logged
SnowCrash
Full Member
***
Posts: 110


Re:User Online (Chat)
« Reply #5 on: January 24, 2004, 11:03:40 PM »
Reply with quote

Wenn man den Sourcecode vernünftig einrückt, dann findet man den Fehler ganz schnell.... ;D

da is irgendwie eine } hinter "
echo "<b>Zurzeit ".$a." User online</b><br><br>";
zuviel....

Wobei der ganze Code Unfug ist... da ist einiges doppelt und Uberflüssiges drinne...

Probier mal aus ob Dir

SELECT COUNT(*) AS ucount FROM wichat_users  WHERE chat_raum>0

die gewünschte Anzahl ausgibt wenn Du das Statement z.B. in phpMyAdmin ausführst... wenn ja, kannst Du folgenden Code benutzen:

<?php

   $link 
mysql_connect("localhost""web""hgfchgc") or die("Keine Verbindung möglich: " mysql_error());

   
mysql_select_db("usr-hjjk") or die("Auswahl der Datenbank fehlgeschlagen");

   
$sqlquery   'SELECT COUNT(*) AS ucount FROM wichat_users WHERE chat_raum>0';
   
$result      mysql_query($sqlquery);

   if (!(
$result === false))
   {
      
$data   mysql_fetch_assoc($result); 
      echo 
'<b>Momentan '.(($data['ucount'] == 0) ? 'keine' : (($data['ucount'] == 1) ? 'ist ein' 'sind '.$data['ucount'])).' User online</b><br><br>';
      
mysql_free_result($result);
   }

   
mysql_close($link);
?>


wie immer: UNGETESTET!

Nachtrag: wenn Du das im Forum anzeigen willst, würde ich empfehlen daraus eine yy-Funktion zu basteln und die dann zu nutzen.... also fügst Du in Subs.php

function yyChatOnline()
{

  $sqlquery   = 'SELECT COUNT(*) AS ucount FROM wichat_users WHERE chat_raum>0';
  $result     = mysql_query($sqlquery);
  $res        = '';

  if (!($result === false))
  {
     $data   = mysql_fetch_assoc($result);
     $res    = '<b>Momentan '.(($data['ucount'] == 0) ? 'keine' : (($data['ucount'] == 1) ? 'ist ein' : 'sind '.$data['ucount'])).' User online</b><br><br>';
     mysql_free_result($result);
  }

  return $res;

}


ein und fügst in Deinem Template irgendwo <yabb ChatOnline> ein... das klappt aber nur dann, wenn YaBB und der Chat die gleiche Datenbank nutzen....
« Last Edit: January 24, 2004, 11:09:40 PM by SnowCrash » Logged

It's better to be hated for who you are
then to be loved for who
you are not...
[/b][/i]
proxxyd
Jr. Member
**
Posts: 76


F.E.T

Re:User Online (Chat)
« Reply #6 on: January 25, 2004, 11:59:57 AM »
Reply with quote

Hi Snowcrash,
vielen dank für deine hilfe, hat alles geklapt :D
super ist dein tip auch mit der yyfunktion, so werden die mysql-logindaten nicht im quelltext angezeigt.un doch noch ne frage:
wie sollte die ausgabezeile heissen, wenn ich die namen (nick) von den onlineusern noch anzeigen möchte?
danke und gruss,dani
Logged
SnowCrash
Full Member
***
Posts: 110


Re:User Online (Chat)
« Reply #7 on: January 25, 2004, 01:35:13 PM »
Reply with quote

Quote from: proxxyd on January 25, 2004, 11:59:57 AM
Hi Snowcrash,
vielen dank für deine hilfe, hat alles geklapt :D
super ist dein tip auch mit der yyfunktion, so werden die mysql-logindaten nicht im quelltext angezeigt.un doch noch ne frage:
wie sollte die ausgabezeile heissen, wenn ich die namen (nick) von den onlineusern noch anzeigen möchte?
danke und gruss,dani

In dem Fall muss die Funktion komplett anders aussehen... nämlich so (hoffe ich zumindest *g*):

function yyChatOnline()
{

   $sqlquery  = 'SELECT nick FROM wichat_users WHERE chat_raum>0';
   $result    = mysql_query($sqlquery);
   $res        = '';

   if (!($result === false))
   {

      $users   = array();

      while ($data  = mysql_fetch_assoc($result))
         $users[]   = $data['nick'];

      switch (count($users))
      {
         case 0   :
            $res   = 'Momentan ist niemand im Chat.';
            break;
         case 1   :
            $res   = 'Momentan ist nur '.implode(', ',$users).' im Chat.';
            break;
         default   :
            $res   = 'Momentan sind folgende '.count($users).' User im Chat: '.implode(', ',$users);
            break;
      }

      $res   .= '<br /><br />';
      
      mysql_free_result($result);

   }

   return $res;

}
« Last Edit: January 25, 2004, 01:38:44 PM by SnowCrash » Logged

It's better to be hated for who you are
then to be loved for who
you are not...
[/b][/i]
proxxyd
Jr. Member
**
Posts: 76


F.E.T

Re:User Online (Chat)
« Reply #8 on: January 25, 2004, 02:08:21 PM »
Reply with quote

hmm, leider habe ich nun gar keine anzeige mehr, nicht mal ne fehlermeldung ???
Logged
proxxyd
Jr. Member
**
Posts: 76


F.E.T

Re:User Online (Chat)
« Reply #9 on: January 25, 2004, 02:32:41 PM »
Reply with quote

übrigens hat deine erste version anfangs nicht funktioniert, erst als ich ein wenig geändert hatte, funktionierte es, jetzt heisst es so:
Quotefunction yyChatOnline()
{

 $sqlquery  = 'SELECT COUNT(*) AS ucount FROM wichat_users WHERE chat_raum>0';
 $result      = mysql_query($sqlquery);

 if (!($result === false))
 {
     $data  = mysql_fetch_assoc($result);
     echo '<b>Momentan '.(($data['ucount'] == 0) ? 'keine' : (($data['ucount'] == 1) ? 'ist ein' : 'sind '.$data['ucount'])).' User online</b><br><br>';
     mysql_free_result($result);
 }

 return $res;

}

deine version:
Quotefunction yyChatOnline()
{

 $sqlquery  = 'SELECT COUNT(*) AS ucount FROM wichat_users WHERE chat_raum>0';
 $result    = mysql_query($sqlquery);
 $res        = '';

 if (!($result === false))
 {
     $data  = mysql_fetch_assoc($result);
     $res    = '<b>Momentan '.(($data['ucount'] == 0) ? 'keine' : (($data['ucount'] == 1) ? 'ist ein' : 'sind '.$data['ucount'])).' User online</b><br><br>';
     mysql_free_result($result);
 }

 return $res;

}
« Last Edit: January 25, 2004, 02:33:48 PM by proxxyd » Logged
SnowCrash
Full Member
***
Posts: 110


Re:User Online (Chat)
« Reply #10 on: January 25, 2004, 03:04:34 PM »
Reply with quote

Ich schau nachher mal...
Logged

It's better to be hated for who you are
then to be loved for who
you are not...
[/b][/i]
SnowCrash
Full Member
***
Posts: 110


Re:User Online (Chat)
« Reply #11 on: January 25, 2004, 03:21:01 PM »
Reply with quote

OK, der richtige Code sieht so aus:

function yyChatOnline()
{

  $sqlquery  = 'SELECT nick FROM wichat_users WHERE chat_raum>0';
  $result    = mysql_query($sqlquery);
  $res        = '';

  if (!($result === false))
  {

     $users   = array();

     while ($data  = mysql_fetch_assoc($result))
        $users[]   = $data['nick'];

     switch (count($users))
     {
        case 0   :
           $res   = 'Momentan ist niemand im Chat.';
           break;
        case 1   :
           $res   = 'Momentan ist nur '.implode(', ',$users).' im Chat.';
           break;
        default   :
           $res   = 'Momentan sind folgende '.count($users).' User im Chat: '.implode(', ',$users);
           break;
     }

     $res   .= '<br /><br />';
     
     mysql_free_result($result);

  }

  echo $res;

}


Habs getestet und bei mir klappts... zumindest soweit ich das ohne nähere INfos zum Chat hier nachvollziehen kann.... der Fehler war das "return $res;" ... hatte ganz vergessen das YaBB da eine Ausgabe erwartet und nicht die Rückgabe eines Wertes....  ::)
Logged

It's better to be hated for who you are
then to be loved for who
you are not...
[/b][/i]
proxxyd
Jr. Member
**
Posts: 76


F.E.T

Re:User Online (Chat)
« Reply #12 on: January 25, 2004, 03:39:25 PM »
Reply with quote

danke, du bist wirklich gut!
funktioniert nun alles, danke

gruss, dani
Logged
Pages: [1] Reply Ignore Print 
YaBB SE Community  |  German User Help  |  Hilfe zu YaBB SE  |  User Online (Chat) « previous - next »
 


Powered by MySQL Powered by PHP YaBB SE Community | Powered by YaBB SE
© 2001-2003, YaBB SE Dev Team. All Rights Reserved.
SMF 2.1.4 © 2023, Simple Machines
Valid XHTML 1.0! Valid CSS

Page created in 0.174 seconds with 21 queries.