Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste
PHP in Templates
#1
Huhu, Ich möchte PHP in Templates, ich wollte es wie folgt einbinden (wie aus der Suche hervorging):

Ich habe folgendes in die global.php hinzugefügt:

Code:
ob_start();
include("testpic.php");
$new_pics = ob_get_contents();
ob_end_clean();

Das gab diesen Fehler:

Zitat:Fatal error: Call to a member function query() on a non-object in /web/forum/testpic.php on line 5

Zeile 5-7:

Code:
$first = $db->query("SELECT * FROM `".TABLE_PREFIX."gallery_pic` ORDER BY `ID_PICTURE` DESC LIMIT 3");

while($list = $db->fetch_array($first)) {

Ich weiß jetzt nicht, was ich machen muss um diesen Fehler zu meiden...

Dankeschön - vorab.

Gruß
Zitieren
#2
So wie es aussieht hast du in deiner eingebundenen Datei nicht die global.php von MyBB miteinbezogen.

https://www.mybb.de/doku/haeufig-gestell...ellen.html
Gruß Manuel
Bitte erst die Suche und die Doku benutzen.
Zitieren
#3
Gibt das nicht ein "Stack-Overflow" ?

Fatal error: Allowed memory size of 50331648 bytes exhausted (tried to allocate 491520 bytes) in /forum/global.php on line 496
Zitieren
#4
Der Fehler tritt in der testpic.php auf. Ohne den Inhalt der Datei wird es schwer genaueres zu sagen.

Die zweite Fehlermeldung bedeutet, dass das Skript mehr Speicher benötigt, als in der PHP-Konfiguration erlaubt wurde.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#5
PHP-Code:
<?php


$message 
'<table border="0" cellspacing="1" cellpadding="3" class="tborder"><tr>';

$first $db->query("SELECT * FROM `".TABLE_PREFIX."gallery_pic` ORDER BY `ID_PICTURE` DESC LIMIT 3");

while(
$list $db->fetch_array($first)) {

$thumb $list['thumbfilename'];
$picid $list['ID_PICTURE'];

    
$message .= '<td rowspan="2" class="trow1" align="center" width="120"><a href="http://warriors.pytalhost.de/forum/ezgallery.php?action=view&id='.$picid.'"><img src="http://warriors.pytalhost.de/forum/gallery/'.$thumb.'" /></a></td>
<td class="trow2"><span class="smalltext">'
my_date($mybb->settings['dateformat'],$list['date']) .'</span></td>';
}

$message .= "</tr><tr>";

$first $db->query("SELECT * FROM `".TABLE_PREFIX."gallery_pic` ORDER BY `ID_PICTURE` DESC LIMIT 3");

while(
$list $db->fetch_array($first)) {
$id $list['ID_MEMBER'];
$user get_user($id);
$username format_name($user['username'],$user['usergroup'],$user['displaygroup']);
$message .= '<td class="trow1"><span class="smalltext">Von <a href="http://warriors.pytalhost.de/forum/member.php?action=profile&uid='.$id.'">'.$username.'</a></span></td>';
}

$message .= "</tr></table>";

?>

Gruß (:
Zitieren
#6
OK, dann war Manuels Vermutung korrekt. Was passiert, wenn du $message direkt per echo() ausgibst anstatt immer mehr in die Variable zu schreiben?

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#7
Genau dasselbe...

Zitat:Fatal error: Allowed memory size of 50331648 bytes exhausted (tried to allocate 491520 bytes) in /forum/global.php on line 496

PHP-Code:
<?php

require "./global.php";

echo 
'<table border="0" cellspacing="1" cellpadding="3" class="tborder"><tr>';

$first $db->query("SELECT * FROM `".TABLE_PREFIX."gallery_pic` ORDER BY `ID_PICTURE` DESC LIMIT 3");

while(
$list $db->fetch_array($first)) {

$thumb $list['thumbfilename'];
$picid $list['ID_PICTURE'];

echo 
'<td rowspan="2" class="trow1" align="center" width="120"><a href="http://warriors.pytalhost.de/forum/ezgallery.php?action=view&id='.$picid.'"><img src="http://warriors.pytalhost.de/forum/gallery/'.$thumb.'" /></a></td>
<td class="trow2"><span class="smalltext">'
my_date($mybb->settings['dateformat'],$list['date']) .'</span></td>';
}

echo 
"</tr><tr>";

$first $db->query("SELECT * FROM `".TABLE_PREFIX."gallery_pic` ORDER BY `ID_PICTURE` DESC LIMIT 3");

while(
$list $db->fetch_array($first)) {
$id $list['ID_MEMBER'];
$user get_user($id);
$username format_name($user['username'],$user['usergroup'],$user['displaygroup']);
echo 
'<td class="trow1"><span class="smalltext">Von <a href="http://warriors.pytalhost.de/forum/member.php?action=profile&uid='.$id.'">'.$username.'</a></span></td>';
}

echo 
"</tr></table>";

?>
Zitieren
#8
Das ist völlig unsinnig, was du machst. Warum baust du den Code nicht direkt in die global.php ein?
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#9
Ich wollte den Code als Variable in meinen Templates benutzen.
Über die Suche kam ich auf dieses Verfahren.

Wie ich es nun direkt einbaue, so das dessen, was oben steht, funktioniert - weiß ich nicht.
Zitieren
#10
Mit ob_start musst du arbeiten, wenn du einen Code hast, der mit echo ausgegeben wird. Schreibst du den Code selbst, kann du natürlich gleich Variablen verwenden und benutzen.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren