#1
| ||||
| ||||
Ein Problem mit Funktion und PlatzhalterMhhh ... irgendwie ... ich weiss auch nicht. Ich möchte auf einer nicht vB Seite die Online Nutzer (Mitglieder und Gäste) anzeigen lassen. Die nicht vB Seite ist im Templateverfahren mit Platzhaltern für Funktionen aufgebaut ( {blablub} ) Im Template habe ich den Halter {whoson} ... dieser ist in der index.php wie folgt definiert: Code: if(strpos($strs,"{whoson}")>1)$tpl->Insert("{whoson}", board_online()); Die Funktion board_online schaut wie folgt aus und befindet sich in der functions.php Code: function board_online() { require_once("../**/online_extern.php"); } Der Code aus der online_extern.php sieht so aus Code: <?php error_reporting(E_ALL & ~E_NOTICE); require_once("./includes/config.php"); function iif($expression, $returntrue, $returnfalse = '') { return ($expression ? $returntrue : $returnfalse); } mysql_connect($servername,$dbusername,$dbpassword); mysql_select_db($dbname); $showusernames = 0; // 1 um Usernamen anstelle der Anzal auszugeben $settings = mysql_query("SELECT * FROM ".$tableprefix."setting WHERE varname = 'cookietimeout'"); $settings = mysql_fetch_array($settings); $datecut = time()-$settings['value']; if ($showusernames == 1) { $regmembers = mysql_query("SELECT DISTINCT username,options FROM ".$tableprefix."user,".$tableprefix."session WHERE ".$tableprefix."session.userid=".$tableprefix."user.userid AND ".$tableprefix."session.lastactivity>$datecut ORDER BY username ASC") or exit("oops2"); while($regmember = mysql_fetch_array($regmembers)) { $regmember['options'] = intval($regmember['options']); foreach($regmember as $optionname => $optionval) { $regmember["$optionname"] = iif($regmember['options'] & $optionval, 1, 0); } if ((($regmember['invisible'] == 0)) and $regmemberson or ($bbuserinfo['usergroupid'] == 6 and $regmember['invisible'] == 1)) { $regmemberson .= ", "; } $regmembercomma++; if ($regmember['invisible'] == 0 or $bbuserinfo['usergroupid'] == 6) { if ($regmember['invisible'] == 1) { $userinvisible = "*"; } $regmemberson .= $regmember['username'].$userinvisible; } else { $regmembercomma++; } } if (!$regmemberson) { $regmemberson = "(none)"; } } else { $regmembers = mysql_query("SELECT COUNT(DISTINCT userid) AS membersonline FROM ".$tableprefix."session WHERE userid>0 AND ".$tableprefix."session.lastactivity>$datecut") or exit("oops3"); $regmembers = mysql_fetch_array($regmembers); $regmemberson = number_format($regmembers['membersonline']); } $howmany = substr_count($regmemberson,","); if (($showusernames == 1 and $howmany >= 1) or ($showusernames == 0 and $regmemberson > 1)) { $memberstext = 'Mitglieder'; } else { $memberstext = 'Mitglied'; } $guests = mysql_query("SELECT COUNT(userid) AS guestsonline FROM ".$tableprefix."session WHERE userid=0 AND ".$tableprefix."session.lastactivity>$datecut") or exit("oops4"); $guests = mysql_fetch_array($guests); if ($guests['guestsonline'] > 1) { $gueststext = 'Gäste'; } else { $gueststext = 'Gast'; } $guestson = number_format($guests['guestsonline']); $show = $memberstext.' online: '.$regmemberson.'. '.$gueststext.' online: '.$guestson.'.'; echo "<span style=\"font-family: Verdana; font-size: 12px\">$show</span>"; ?> Mein Problem ist nun nicht wirklich von mir erfassbar ... denn egal wo ich {whoson} einfüge, steht die Ausgabe immer ganz oben auf der Seite ... Weiss jemand von euch, woran das liegen könnte? Wieso ich die Ausgabe von {whoson} nicht in eine Tabelle plaziert bekomme? Geändert von Jan Stöver (03.05.2004 um 21:11 Uhr). |
#2
| ||||
| ||||
ganz unten in der funktion steht doch ein echo drinnen. du must das echo in einer variable speichern, das ganze per return zurückgeben und mit {whoson} ersetzen lassen. du solltest in der funtion board_online() nicht die datei includen sondern den code selber in die funktion schreiben, das ergebnis zurückgeben lassen und dann mit {whoson} ersetzen. |
#3
| ||||
| ||||
Schreib den Krams aus der online_extern.php in die Funktion, die du auch aufrufst und ersetzt das "echo" einfach mit "return". __________________ Philipp Gérard Gewöhnliche Menschen denken nur daran, wie sie ihre Zeit verbringen. Ein intelligenter Mensch versucht sie zu nützen. - Arthur Schopenhauer |
#4
| ||||
| ||||
Also meinst du wie folgt ... functions.php Code: error_reporting(E_ALL & ~E_NOTICE); chdir(../**/); require_once("./includes/config.php"); chdir(../**/); function iif($expression, $returntrue, $returnfalse = '') { return ($expression ? $returntrue : $returnfalse); } mysql_connect($servername,$dbusername,$dbpassword) ; mysql_select_db($dbname); $showusernames = 0; // 1 um Usernamen anstelle der Anzal auszugeben $settings = mysql_query("SELECT * FROM ".$tableprefix."setting WHERE varname = 'cookietimeout'"); $settings = mysql_fetch_array($settings); $datecut = time()-$settings['value']; if ($showusernames == 1) { $regmembers = mysql_query("SELECT DISTINCT username,options FROM ".$tableprefix."user,".$tableprefix."session WHERE ".$tableprefix."session.userid=".$tableprefix."user.userid AND ".$tableprefix."session.lastactivity>$datecut ORDER BY username ASC") or exit("oops2"); while($regmember = mysql_fetch_array($regmembers)) { $regmember['options'] = intval($regmember['options']); foreach($regmember as $optionname => $optionval) { $regmember["$optionname"] = iif($regmember['options'] & $optionval, 1, 0); } if ((($regmember['invisible'] == 0)) and $regmemberson or ($bbuserinfo['usergroupid'] == 6 and $regmember['invisible'] == 1)) { $regmemberson .= ", "; } $regmembercomma++; if ($regmember['invisible'] == 0 or $bbuserinfo['usergroupid'] == 6) { if ($regmember['invisible'] == 1) { $userinvisible = "*"; } $regmemberson .= $regmember['username'].$userinvisible; } else { $regmembercomma++; } } if (!$regmemberson) { $regmemberson = "(none)"; } } else { $regmembers = mysql_query("SELECT COUNT(DISTINCT userid) AS membersonline FROM ".$tableprefix."session WHERE userid>0 AND ".$tableprefix."session.lastactivity>$datecut") or exit("oops3"); $regmembers = mysql_fetch_array($regmembers); $regmemberson = number_format($regmembers['membersonline']); } $howmany = substr_count($regmemberson,","); if (($showusernames == 1 and $howmany >= 1) or ($showusernames == 0 and $regmemberson > 1)) { $memberstext = 'Mitglieder'; } else { $memberstext = 'Mitglied'; } $guests = mysql_query("SELECT COUNT(userid) AS guestsonline FROM ".$tableprefix."session WHERE userid=0 AND ".$tableprefix."session.lastactivity>$datecut") or exit("oops4"); $guests = mysql_fetch_array($guests); if ($guests['guestsonline'] > 1) { $gueststext = 'Gäste'; } else { $gueststext = 'Gast'; } $guestson = number_format($guests['guestsonline']); $show = $memberstext.' online: '.$regmemberson.'. '.$gueststext.' online: '.$guestson.'.'; return $show; Code: if(strpos($strs,"{whoson}")>1)$tpl->Insert("{whoson}", board_online()); |
#5
| ||||
| ||||
Ich Döddel ... Vorhin haue ich ewig rum, weil ich die Funktion nicht richtig definiert hatte in der index.php und nu so ein Kleinkram ... naja - sagte in einem anderen Thread nicht umsonst, dass ich ein Noob bin Dankeschön! |
Stichworte |
- |
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Problem beim Ändern von Beiträgen ...?! | Jan Stöver | Informationen, Anregungen und Kritik | 4 | 24.03.2005 15:15 |
Problem mit Mediawiki | mvorlaender | Blog, CMS, Wiki und Sonstige | 1 | 11.10.2004 15:27 |
Problem mit MyPHPAdmin | Marty | Programmierung und Datenbanken | 5 | 15.03.2004 10:31 |
Problem mit dem phpBB 2.2-Installer | rellek | Forensoftware | 2 | 25.02.2004 16:30 |