Online-Anzeige Pcpin Chat / Parse Error

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
tomtom
Mitglied
Beiträge: 2533
Registriert: 21.05.2004 10:00

Online-Anzeige Pcpin Chat / Parse Error

Beitrag von tomtom »

Hallo,

mittels einer Datei info.php mit dem Inhalt

Code: Alles auswählen



<html> <head> <title>Chatonline</title> </head> <body> <?php $MYSQL_HOST = "xxx"; /* einfach so stehen lassen */ $MYSQL_USER = "xxx"; /* dein db-benutzername */ $MYSQL_PW = "txxx"; /* dein db-passwort */ $MYSQL_DB = "uxxx_1"; /* name der db vom chat */ $conn = mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PW); mysql_select_db($MYSQL_DB, $conn); $i = 0; $user_raum = mysql_query("SELECT * FROM `pcpin_nickname`, `pcpin_room`, `pcpin_session` WHERE pcpin_nickname.default = 'y' AND _s_room_id = pcpin_room.id AND _s_user_id = user_id ORDER BY name ASC, nickname_plain ASC; "); $user_count = mysql_query("SELECT * FROM `pcpin_session` WHERE _s_online_status != ''; "); while($row = mysql_fetch_assoc($user_count)) { $i++; } echo "<tr><td align='left' <font face='verdana' size='1' color='#000000'><b><br>im Chat:</b> "; while($row = mysql_fetch_assoc($user_raum)) { echo htmlspecialchars($row[nickname_plain]); echo ","; } echo "</font></div></td></tr></table>"; ?> </body> </html>


wird per Iframe

Code: Alles auswählen

<iframe src="http://www.DeinServer.de/DieDatei.php" width="230px" height="230px" scrolling="no" marginheight="0" marginwidth="0" frameborder="0"></iframe>
eine Onlineliste der User geliefert.

Frage1: Kann mit jmd. sagen, wie ich es hinbekommen, dass in der Anzeige nach allen z.b. 5 Usern ein Zeilenumbruch erzwungen wird?

"User1, User2, User3, User4, User5,
User6, User7, User8, User9 User10"

Frage 2: Die Anzeige im Firefox ist so wie sie soll:

[ externes Bild ]

Im IE jeodch weniger (Schrift, weißer Hintergrund):

[ externes Bild ]

Wer kann helfen, das anzupassen?

Danke!
Zuletzt geändert von tomtom am 31.03.2008 12:45, insgesamt 1-mal geändert.
Gruß, Tom
tomtom
Mitglied
Beiträge: 2533
Registriert: 21.05.2004 10:00

Beitrag von tomtom »

*schieb*

Frage 1 kann doch sicher jeder PHP Profi beantworten oder?
Gruß, Tom
Mavo460
Mitglied
Beiträge: 368
Registriert: 07.09.2005 20:16
Wohnort: Oldenburg
Kontaktdaten:

Beitrag von Mavo460 »

Nicht getestet aber sollte funktionieren:

Code: Alles auswählen

<html>
<head>
<title>Chatonline</title> 
</head> 
<body> 
<?
$MYSQL_HOST = "xxx"; /* einfach so stehen lassen */ 
$MYSQL_USER = "xxx"; /* dein db-benutzername */ 
$MYSQL_PW = "txxx"; /* dein db-passwort */ 
$MYSQL_DB = "uxxx_1"; /* name der db vom chat */ 
$conn = mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PW); 
mysql_select_db($MYSQL_DB, $conn); 
$i = 0; 
$user_raum = mysql_query("SELECT * FROM `pcpin_nickname`, `pcpin_room`, `pcpin_session` WHERE pcpin_nickname.default = 'y' AND _s_room_id = pcpin_room.id AND _s_user_id = user_id ORDER BY name ASC, nickname_plain ASC; "); 
$user_count = mysql_query("SELECT * FROM `pcpin_session` WHERE _s_online_status != ''; "); 
while($row = mysql_fetch_assoc($user_count)) { $i++; } 
echo "<tr><td align='left' <font face='verdana' size='1' color='#000000'><b><br>im Chat:</b> "; 
while($row = mysql_fetch_assoc($user_raum)) { echo htmlspecialchars($row[nickname_plain]); echo ","; } if ($i % 5 == 0) {
echo '<br>';
} echo "</font></div></td></tr></table>"; 
?> 
</body> 
</html>
Warum bindest du das ganze allerdings per iframe ein? Ist doch einfacher wenn du das in die index.php selbst mit einbindest vorrausgesetzt der Chat läuft auf dem gleichen Server wie das Forum :)

MfG Marco
tomtom
Mitglied
Beiträge: 2533
Registriert: 21.05.2004 10:00

Beitrag von tomtom »

Hm. dieser Code

Code: Alles auswählen

<html> <head> <title>Chatonline</title> </head> <body><body style="background-color:#EFEFEF"> <?php $MYSQL_HOST = "xxx"; /* einfach so stehen lassen */ $MYSQL_USER = "xxx"; /* dein db-benutzername */ $MYSQL_PW = "xxx"; /* dein db-passwort */ $MYSQL_DB = "xxx"; /* name der db vom chat */ $conn = mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PW); mysql_select_db($MYSQL_DB, $conn); $i = 0; $user_raum = mysql_query("SELECT * FROM `pcpin_nickname`, `pcpin_room`, `pcpin_session` WHERE pcpin_nickname.default = 'y' AND _s_room_id = pcpin_room.id AND _s_user_id = user_id ORDER BY name ASC, nickname_plain ASC; "); $user_count = mysql_query("SELECT * FROM `pcpin_session` WHERE _s_online_status != ''; "); while($row = mysql_fetch_assoc($user_count)) { $i++; } echo "<tr><td align='left'><font face='verdana' size='1' color='#000000'><b><br>im Chat:<br></b> "; while($row = mysql_fetch_assoc($user_raum)) { echo htmlspecialchars($row[nickname_plain]); echo ","; } if ($i % 2 == 0) {
echo '<br>';} echo "</font></div></td></tr></table>"; ?> </body> </html>
läuft leider nicht. Hatte jetzt mal testweise 2 eingestellt.

Noch eine Idee?

Wenn nicht per Iframe, wie dann?

Den Inhalt des includeten Datei in die index.php und Ausgabe in der index_body.tpl?
Gruß, Tom
Mavo460
Mitglied
Beiträge: 368
Registriert: 07.09.2005 20:16
Wohnort: Oldenburg
Kontaktdaten:

Beitrag von Mavo460 »

Ändere den Rest ab der while schleife in folgendes:

Code: Alles auswählen

while($row = mysql_fetch_assoc($user_raum)) 
{
$i++;
echo htmlspecialchars($row[nickname_plain]);
echo ",";
if ($i % 5 == 0) {
echo '<br>';
}
}
echo "</font></div></td></tr></table>";
ich hatte vergessen den zeilenumbruch in die while schleife zu packen. Testen kann ich es leider nicht so richtig da ich keine abfrage mit dem kram auf die schnelle zusammen gebaut habe. Grundsätzlich ist aber

Code: Alles auswählen

if ($i % 5 == 0) {
echo '<br>';
}
der punkt wo nach 5 inhalten ein zeilenumbruch gemacht wird.

Zu deiner anderen Frage: Ja ich würde wenn beides auf einem Server liegt in die index.php bauen, also den Code der Chat abfrage und dann eben über das template an die index_body.tpl übergeben :) Dann kannst du auch dadurch das css nutzen :)

MfG Marco
tomtom
Mitglied
Beiträge: 2533
Registriert: 21.05.2004 10:00

Beitrag von tomtom »

Danke der Umbruch scheint zu tun.

Kannst du mir bitte sagen, was ich aus der ursprünglichen includeten Datei weglassen kann? Und wo baue ich in der index.php das ein?
Gruß, Tom
Mavo460
Mitglied
Beiträge: 368
Registriert: 07.09.2005 20:16
Wohnort: Oldenburg
Kontaktdaten:

Beitrag von Mavo460 »

Das Funktioniert allerdings nur wenn der Chat auf dem gleichen Serverliegt wie das Forum und auch die DB die gleiche ist wie die in welchem das Forum liegt. Ansonsten eben noch die db-verbindung includieren.

öffne index.php und suche:

Code: Alles auswählen

//
// End session management
//
füge darüber ein:

Code: Alles auswählen

$chat_user_online_anzeigen = 1;

if ($chat_user_online_anzeigen = 1){
	$i = 0;
	$user_count = mysql_query("SELECT * FROM `pcpin_session` WHERE _s_online_status != ''; ");
	while($row = mysql_fetch_assoc($user_count)) { $i++; }
	$sql = 'SELECT * FROM `pcpin_nickname`, `pcpin_room`, `pcpin_session` WHERE pcpin_nickname.default = 'y' AND _s_room_id = pcpin_room.id AND _s_user_id = user_id ORDER BY name ASC, nickname_plain ASC';

	$result = $db->sql_query($sql);

	while( $row = $db->sql_fetchrow($result) )
		{
		$chatusername .= htmlspecialchars($row['nickname_plain']) . ', ';
		$chatusernamen = $test;
		}
	$chatuserzahl = $i;
}
suche:

Code: Alles auswählen

		'NEWEST_USER' => sprintf($lang['Newest_user'], '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$newest_uid") . '">', $newest_user, '</a>'), 
füge darunter ein:

Code: Alles auswählen

		'CHATUSERZAHL => sprintf($chatuserzahl),
		'CHATUSERNAMEN' => sprintf($chatusernamen),
öffne index_body.tpl

suche:

Code: Alles auswählen

  <tr> 
	<td class="row1" align="center" valign="middle" rowspan="2">
und erhöhe rowspan um 1. rowspan kann auch mehr sein bei mehr spalten und muss entsprechend erhöht werden um 1

suche

Code: Alles auswählen

  <tr> 
	<td class="row1" align="left"><span class="gensmall">{TOTAL_USERS_ONLINE} &nbsp; [ {L_WHOSONLINE_ADMIN} ] &nbsp; [ {L_WHOSONLINE_MOD} ]<br />{RECORD_USERS}<br />{LOGGED_IN_USER_LIST}</span></td>
  </tr>
füge darunter ein:

Code: Alles auswählen

  <tr> 
	<td class="row1" align="left"><span class="gensmall">Es befinden sich zur Zeit <b>{CHATUSERZAHL}</b> User im Chat<br>Folgende User sind im Chat: <b>{CHATUSERNAMEN}</b></span></td>
  </tr>
Es handelt sich entsprechend bei den templates um das des subSilver. Bei einem anderen musst du das entsprechend anpassen. Ich habe den Zeilen umbruch nach 5 Usern rausgenommen da es im Forum selbst nicht so gut ausschaut. Ich würde es dann weiterhin hintereinander lassen die Usernamen.

Ich habe das ein wenig getestet. Funktionsgarantie gebe ich aber keine helfe aber gern weiter :)

MfG Marco
tomtom
Mitglied
Beiträge: 2533
Registriert: 21.05.2004 10:00

Beitrag von tomtom »

Danke ... aber der Code

Code: Alles auswählen

$chat_user_online_anzeigen = 1;

if ($chat_user_online_anzeigen = 1){
   $i = 0;
   $user_count = mysql_query("SELECT * FROM `pcpin_session` WHERE _s_online_status != ''; ");
   while($row = mysql_fetch_assoc($user_count)) { $i++; }
   $sql = 'SELECT * FROM `pcpin_nickname`, `pcpin_room`, `pcpin_session` WHERE pcpin_nickname.default = 'y' AND _s_room_id = pcpin_room.id AND _s_user_id = user_id ORDER BY name ASC, nickname_plain ASC';

   $result = $db->sql_query($sql);

   while( $row = $db->sql_fetchrow($result) )
      {
      $chatusername .= htmlspecialchars($row['nickname_plain']) . ', ';
      $chatusernamen = $test;
      }
   $chatuserzahl = $i;
}
verursacht einen Fehler:
Parse error: syntax error, unexpected T_STRING in /home/www/p172/html/forum/index.php on line 66

Zeile 66:

Code: Alles auswählen

$sql = 'SELECT * FROM `pcpin_nickname`, `pcpin_room`, `pcpin_session` WHERE pcpin_nickname.default = 'y' AND _s_room_id = pcpin_room.id AND _s_user_id = user_id ORDER BY name ASC, nickname_plain ASC';
Gruß, Tom
Mavo460
Mitglied
Beiträge: 368
Registriert: 07.09.2005 20:16
Wohnort: Oldenburg
Kontaktdaten:

Beitrag von Mavo460 »

Moin,

tausch die SQL Zeile mal gegen diese aus:

Code: Alles auswählen

$sql = 'SELECT * FROM `pcpin_nickname`, `pcpin_room`, `pcpin_session` WHERE pcpin_nickname.default = "y" AND _s_room_id = pcpin_room.id AND _s_user_id = user_id ORDER BY name ASC, nickname_plain ASC';
Das einzige was ich geändert habe war das

Code: Alles auswählen

'y' in "y"
MfG MArco
tomtom
Mitglied
Beiträge: 2533
Registriert: 21.05.2004 10:00

Beitrag von tomtom »

Ok der Fehler ist weg, danke.

Nur wird leider kein Name angezeigt, auch wenn jmd. im Chat ist:
Es befinden sich zur Zeit 1 User im Chat
Folgende User sind im Chat:
Gruß, Tom
Antworten

Zurück zu „phpBB 2.0: Mod Support“