Problem mit PHP Skripten / phplib / SQL
Problem mit PHP Skripten / phplib / SQL
Hallo,
der alte Thread ist mir zu sehr in eine andere Richtung gedriftet, darum noch mal neu:
Ich möchte ein PHP-Skript einbinden. Es handelt sich dabei im Prinzip um das Skript phpbb_fetch_all.php, falls das jemand kennt. Es holt News-Postings aus meinem Forum (phpbb2), bzw. soll das machen...
Das Skript lässt sich einbinden und läuft. Aber die nächste Datenbankabfrage von Contenido, z.B. für das Navi-Modul produziert einen "call to undefinded function: query()......eval'd code in blabla" error.
Kann ich dagegen irgendwas machen, oder sind die skripte einfach inkompatibel? Das fetch_post skript includiert eine Menge anderer Skripte, die eben z.T. die Datenbankfunktionen enthalten. Ich kann die Skripte nicht umschreiben, es sind "Original"-skripte von PhpBB.
Für eure Hilfe, schon mal vielen Dank!
der alte Thread ist mir zu sehr in eine andere Richtung gedriftet, darum noch mal neu:
Ich möchte ein PHP-Skript einbinden. Es handelt sich dabei im Prinzip um das Skript phpbb_fetch_all.php, falls das jemand kennt. Es holt News-Postings aus meinem Forum (phpbb2), bzw. soll das machen...
Das Skript lässt sich einbinden und läuft. Aber die nächste Datenbankabfrage von Contenido, z.B. für das Navi-Modul produziert einen "call to undefinded function: query()......eval'd code in blabla" error.
Kann ich dagegen irgendwas machen, oder sind die skripte einfach inkompatibel? Das fetch_post skript includiert eine Menge anderer Skripte, die eben z.T. die Datenbankfunktionen enthalten. Ich kann die Skripte nicht umschreiben, es sind "Original"-skripte von PhpBB.
Für eure Hilfe, schon mal vielen Dank!
Wenn ich
ans ende meines Skripts setze, kommt der Error nicht. Das nachgelagerte Navi-Modul produziert nun allerdings keinen Output.
Jemand ne Idee, wie ich Contenido wieder auf seine Datenbank ansetzen kann?
Code: Alles auswählen
$db = new DB_Contenido;
Jemand ne Idee, wie ich Contenido wieder auf seine Datenbank ansetzen kann?

@Björn:
Webgrab hilft mir nichts, ich will ja datenbankinhalte aus dem Forum ziehen. Das Skript läuft ja auch.
So wie ich das (als Laie) sehe, liegt es daran, dass beide die phplib sql funktionen und Variablen nutzen. Mein Skript legt $db auf die phpBB Datenbank. Dadurch dass ich das wieder rückgängig gemacht habe, indem ich den obigen code eingefügt habe, gibt es keinen Fehler mehr.
Es muss also noch einen Code-Schnipsel geben, der das Navi-Modul wieder mit Leben erfüllt, wenn ich ihn ans Ende meines Skriptes packe. Ein Contenido-Entwickler kann doch sicherlich sagen, was das sein könnte. Es muss ja etwas mit den verwendeten variablen zutun haben.
Webgrab hilft mir nichts, ich will ja datenbankinhalte aus dem Forum ziehen. Das Skript läuft ja auch.
So wie ich das (als Laie) sehe, liegt es daran, dass beide die phplib sql funktionen und Variablen nutzen. Mein Skript legt $db auf die phpBB Datenbank. Dadurch dass ich das wieder rückgängig gemacht habe, indem ich den obigen code eingefügt habe, gibt es keinen Fehler mehr.
Es muss also noch einen Code-Schnipsel geben, der das Navi-Modul wieder mit Leben erfüllt, wenn ich ihn ans Ende meines Skriptes packe. Ein Contenido-Entwickler kann doch sicherlich sagen, was das sein könnte. Es muss ja etwas mit den verwendeten variablen zutun haben.
sorry - bin kein Entwickler - trotzdem mal die Frage... welche Navigation meinst du? also das Modul "Navigation" das standardmäßig enthalten ist? Damit ich weiß, wo ich suchen soll... ich versuche das mal bei mir nachzuvollziehen
Module zum anschauen:
bei Sven: http://contenido-module.de
bei Pulk : http://spielwiese.pulk.net
Der-Dirigent: http://der-dirigent.de
bei Sven: http://contenido-module.de
bei Pulk : http://spielwiese.pulk.net
Der-Dirigent: http://der-dirigent.de
das mit dem $db = new DB_Contenido; funktioniert nicht - produziert bei mir den selben Fehler...
am besten du sicherst vorher die Variable $db in eine andere und holst sie danach zurück *gg*
also im OUTPUT an den Anfang:
$dbsik = $db;
und ans Ende
$db = $dbsik;
das hat bei mir zumindest geklappt.
am besten du sicherst vorher die Variable $db in eine andere und holst sie danach zurück *gg*
also im OUTPUT an den Anfang:
$dbsik = $db;
und ans Ende
$db = $dbsik;
das hat bei mir zumindest geklappt.
Module zum anschauen:
bei Sven: http://contenido-module.de
bei Pulk : http://spielwiese.pulk.net
Der-Dirigent: http://der-dirigent.de
bei Sven: http://contenido-module.de
bei Pulk : http://spielwiese.pulk.net
Der-Dirigent: http://der-dirigent.de
@Björn:
Ja, das Contenido, original, Navigations-Modul
@Sven777b:
Hmmm.
Ich hab jetzt an den Anfang meines Skriptes
$db_vamostemp = $db;
gesetzt, und am Ende dann wieder andersrum.
Der Fehler wird immer noch unterdrückt, aber es kommt auch immer noch kein output.
Testweises auskommentieren von
$db = $db_vamostemp;
zu
// $db = $db_vamostemp;
erzeugt wieder den Error. Aber wie geht's nu weiter?
Noch andere Ideen? Ich poste mal den Code des Navi-Moduls (Original). Vielleicht sieht jemand auf den ersten Blick, woran es haken könnte.
Auf http://www.vamosonline.de seht ihr das Ergebnis. Auf der Startseite erscheint rechts das Menü (Impressum, Kontakt), auf der Seite "Aktuelles" dagegen nicht. Wenn ich das Skript nicht includiere, erscheint das Navi-Modul, wie auf der Startseite auch, es ist also prinzipiell lauffähig.
Ja, das Contenido, original, Navigations-Modul
@Sven777b:
Hmmm.
Ich hab jetzt an den Anfang meines Skriptes
$db_vamostemp = $db;
gesetzt, und am Ende dann wieder andersrum.
Der Fehler wird immer noch unterdrückt, aber es kommt auch immer noch kein output.
Testweises auskommentieren von
$db = $db_vamostemp;
zu
// $db = $db_vamostemp;
erzeugt wieder den Error. Aber wie geht's nu weiter?

Noch andere Ideen? Ich poste mal den Code des Navi-Moduls (Original). Vielleicht sieht jemand auf den ersten Blick, woran es haken könnte.
Auf http://www.vamosonline.de seht ihr das Ergebnis. Auf der Startseite erscheint rechts das Menü (Impressum, Kontakt), auf der Seite "Aktuelles" dagegen nicht. Wenn ich das Skript nicht includiere, erscheint das Navi-Modul, wie auf der Startseite auch, es ist also prinzipiell lauffähig.

Code: Alles auswählen
if ("CMS_VALUE[4]" == 0) {$navmod_id = $idcat;}
else {$navmod_id = "CMS_VALUE[4]";}
if ("CMS_VALUE[5]" != "0")
{$sql = "SELECT * FROM $cfgTab_upl WHERE idupl='CMS_VALUE[5]'";
$db->query($sql);$db->next_record();$navmod_img = "".$db->f("dirname")."/".$db->f("filename")."";}
if ("CMS_VALUE[2]" == "")
{if ("CMS_VALUE[3]" == "ja")
{$sql = "SELECT A.title AS title,A.idside AS idside,B.idcat AS idcat,C.parentid AS parentid FROM $cfgTab_side_lang AS A,$cfgTab_cat_side AS B,$cfgTab_cat AS C WHERE A.idside=B.idside AND B.idcat=C.idcat AND C.idclient='$client' AND B.idcat='$navmod_id' AND idlang='$lang' AND online='1'";}
else {$sql = "SELECT A.title AS title,A.idside AS idside,B.idcat AS idcat,C.parentid AS parentid FROM $cfgTab_side_lang AS A,$cfgTab_cat_side AS B,$cfgTab_cat AS C WHERE A.idside=B.idside AND B.idcat=C.idcat AND C.idclient='$client' AND B.idcat='$navmod_id' AND idlang='$lang' AND online='1' AND is_start='0'";}}
else {$sql = "SELECT name AS title,A.idcat AS idcat,A.idtree AS idtree FROM $cfgTab_cat_tree AS A, $cfgTab_cat AS B, $cfgTab_cat_lang AS C WHERE A.idcat=B.idcat AND B.idcat=C.idcat AND B.idclient='$client' AND C.idlang='$lang' AND B.parentid='$navmod_id' AND C.visible='1' ORDER BY A.idtree";}
$db->query($sql);
if ($db->num_rows() != 0 & "CMS_VALUE[0]" != 0)
{echo "<span id=\"fontCMS_VALUE[0]\">";}
for ($i=0; $i<$db->num_rows(); $i++)
{$db->next_record();
if ("CMS_VALUE[2]" == "") {$navmod_link ="front_content.php?client=$client&lang=$lang&parent=$parent&subid=".$db->f("parentid")."&idcat=".$db->f("idcat")."&idside=".$db->f("idside")."";}
else {$navmod_link ="front_content.php?client=$client&lang=$lang&parent=$parent&subid=".$db->f("idtree")."&idcat=".$db->f("idcat")."&idside=".$db->f("idside")."";}
if ("CMS_VALUE[1]" == "")
{if ($db->f("idside") != $idside)
{echo "<a href=\"".$sess->url("$navmod_link")."\" onMouseOver=\"on('".$db->f("title")."');return true;\" onMouseOut=\"off();return true;\" id=\"fontCMS_VALUE[0]\">".$db->f("title")."</a>";}
else {echo "".$db->f("title")."";}
if ("$i" != $db->num_rows()-1)
{if (!"$navmod_img") {echo " CMS_VALUE[6] ";}
else {echo " <img src=\"$navmod_img\" border=\"0\"> ";}}}
else
{if ("$i" != $db->num_rows()-1)
{if (!"$navmod_img") {echo "CMS_VALUE[7] ";}
else {echo "<img src=\"$navmod_img\" border=\"0\"> ";}
echo "<a href=\"".$sess->url("$navmod_link")."\" onMouseOver=\"on('".$db->f("title")."');return true;\" onMouseOut=\"off();return true;\" id=\"fontCMS_VALUE[0]\">".$db->f("title")."</a><br>";}
else {if (!"$navmod_img") {echo "CMS_VALUE[7] ";}
else {echo "<img src=\"$navmod_img\" border=\"0\"> ";}
echo "<a href=\"".$sess->url("$navmod_link")."\" onMouseOver=\"on('".$db->f("title")."');return true;\" onMouseOut=\"off();return true;\" id=\"fontCMS_VALUE[0]\">".$db->f("title")."</a>";}}}
if ($db->num_rows() != 0 & "CMS_VALUE[0]" != 0)
{echo "</span>";}
Noch eine Idee:
Hast Du das phpbb in einer anderen Datenbank liegen?
Wenn ja, mußt Du mit
mysql_select_db (string ContenidoCMSdatenbank)
nach dem phpbbinclude wieder zurückwechseln in Deine CMS- Datenbank.
Nachtrag Webgrab:
Das würde auch funktionieren. Du legst den webgrab_no_path einfach auf das phpbb_fetch_all.php Skript. Eigentlich nichts anderes als das: http://feg-borna.de/cms/frontend/front_ ... &idside=28
Hast Du das phpbb in einer anderen Datenbank liegen?
Wenn ja, mußt Du mit
mysql_select_db (string ContenidoCMSdatenbank)
nach dem phpbbinclude wieder zurückwechseln in Deine CMS- Datenbank.
Nachtrag Webgrab:
Das würde auch funktionieren. Du legst den webgrab_no_path einfach auf das phpbb_fetch_all.php Skript. Eigentlich nichts anderes als das: http://feg-borna.de/cms/frontend/front_ ... &idside=28
Keine Errors vorhanden, hab's extra noch ein paar mal aufgerufen.
phpBB liegt in der gleichen Datenbank.
Hast Du ein snipplet, mit dem ich mal das $db bzw. $sql array durchlaufen könnte und das mir dann einfach alles echod? wenn das leer bleibt, muss ja unterwegs was verloren gegangen sein..
Ich probier mal Webgrab und meld mich dann wieder.
[EDIT]
Es ist jetzt 1:54 MEZ und es LÄUFT!
Danke für die Hilfe, ich weiß zwar immer noch nicht woran es gelegen hat, aber mit Webgrab ging es dann doch. Ich musste zwar noch einigen Header -Output in webgrab ausstellen, da ansonten auch Fehler auftraten (Header already sent), aber nu klappt's.
Falls doch noch jemand eine Idee hat, woran es ursprünglich gelegen haben könnte, wäre ich trotzdem dankbar.
Gute Nacht!
phpBB liegt in der gleichen Datenbank.
Hast Du ein snipplet, mit dem ich mal das $db bzw. $sql array durchlaufen könnte und das mir dann einfach alles echod? wenn das leer bleibt, muss ja unterwegs was verloren gegangen sein..

Ich probier mal Webgrab und meld mich dann wieder.
[EDIT]
Es ist jetzt 1:54 MEZ und es LÄUFT!

Danke für die Hilfe, ich weiß zwar immer noch nicht woran es gelegen hat, aber mit Webgrab ging es dann doch. Ich musste zwar noch einigen Header -Output in webgrab ausstellen, da ansonten auch Fehler auftraten (Header already sent), aber nu klappt's.
Falls doch noch jemand eine Idee hat, woran es ursprünglich gelegen haben könnte, wäre ich trotzdem dankbar.
Gute Nacht!

TIPP!!!
wenn ihr dinge wie $sess, $db und ähnliches auslesen (echoen) wollt könnt ihr ganz einfach folgendes benutzen:
dadurch bekommt ihr Arrays und Objekte sauber angezeigt
wenn ihr dinge wie $sess, $db und ähnliches auslesen (echoen) wollt könnt ihr ganz einfach folgendes benutzen:
Code: Alles auswählen
print_r (die Variable -> z.B.: $db)
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)
mit "print_r" bekommt man sowohl Arrays als auch Objekte ordentlich aufgebröselt angezeigt...
wenn man NUR "print" angibt bekommt man nur angezeigt, dass es ein Objekt oder ein Array ist....
Notation: PRINT_R (aber bitte und um gottes willen KLEIN schreiben, SO GROSS ist es nur für die blinden geschrieben
)
wenn man NUR "print" angibt bekommt man nur angezeigt, dass es ein Objekt oder ein Array ist....
Notation: PRINT_R (aber bitte und um gottes willen KLEIN schreiben, SO GROSS ist es nur für die blinden geschrieben

MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)