Hallo,
ich habe in meinem Projekt die Extension "LumoNet PHP Include ( lumophpinclude )" installiert um eigene PHP-Skripte einbinden zu können.
Ich habe auf einigen Seiten im Haupt-Content-Bereich jeweils ein eigenes PHP-Skript mit dieser Extension erfolgreich eingebunden.
Nun habe ich in einem rechten Content-Bereich ein weiteres PHP-Skript mit dieser Extension eingebunden. Dieser Bereich mit diesem Skript erscheint auf allen Seiten.
Alle PHP-Skripte haben mySQL-Anbindung.
Wenn ich nun eine Seite aufrufe, die kein eigenes PHP-Skript im Haupt-Content-Bereich enthält aufrufe, so funktioniert alles wunderbar, das PHP-Skript im rechten Content-Bereich wird ausgeführt.
Rufe ich nun aber eine Seite auf, die auch im Haupt-Content-Bereich ein eigenens PHP-Skript enthält, so gibt es einen mysql-Fehler, der von meinem Skript im rechten Bereich kommt:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'www-data'@'localhost' (using password: NO) in [...]uploads/tx_lumophpinclude/rechteDatei.inc.php on line 10
Keine Verbindung zur Datenbank
Wie ist es zu erklären, dass es zu einem Fehler kommt, sobald zwei PHP-Skripte mit Datenbank-Abfrage ausgeführt werden?
Beide Skripte öffnen und schliessen jeweils eine DB-Verbindung.
Wie kann ich das Problem lösen?
Gruss,
Floater
Hallo Floater.
Floater schriebWie kann ich das Problem lösen?
Eine Lösung wäre beispielsweise das Skript sauber als TYPO3-Extension unter Nutzung der TYPO3-API einzubinden, statt es irgendwie mit TYPO3 zu verwurschteln.
Was hierfür spricht (oder auch dagegen) wurde in regelmäßigen Abständen im Forum schon diskutiert. Einfach mal suchen...
Viele Grüße
Julian
Danke für die Antwort.
Aber so ganz befriedigt mich das nicht.
Gibt es denn eine Möglichkeit aus einem PHP-Skript einfach eine Extension zu erstellen?
Gruss,
Floater
Mit ein, zwei Klicks ist das nicht getan bzw. gibt es keine Möglichkeit.
Wie auch beim Einstieg in TYPO3/Typoskript muss man die erste Hürde mal hinter sich lassen, den Aufbau bzw. das Prinzip der Extensions mal verstehen. Dann lassen sich Extensions relativ leicht und schnell erstellen und mit beliebigem PHP-Code füllen.
Eine gute Linksammlung zum Extension-Programmieren hat z.B. Steffen: http://www.sk-typo3.de/Develop.47.0.html
Danke für den Link, da werde ich mich dann mal mit befassen.
Trotzdem verstehe ich aber immer noch den oben von mir genannten Fehler nicht.
Ich habe immer noch die Meinung, dass es auch mit der von mir genannten Methode möglich sein muss und dass ich da irgendetwas - vielleicht nur eine Kleinigkeit - nicht beachtet habe.
Gruß,
Floater
Also Dein Fehler klingt für mich nach einem simplen Problem mit falschen Zugangsdaten. Hast Du die mal überprüft (Debug-Ausgabe)?
Julian.Hofmann schrieb
Also Dein Fehler klingt für mich nach einem simplen Problem mit falschen Zugangsdaten. Hast Du die mal überprüft (Debug-Ausgabe)?
hallo,
die zugangsdaten sind korrekt.
beide skripte funktionieren ja im prinzip auch. aber nur dann, wenn auf einer seite nur eins der beiden skripte eingebunden ist.
sind beide skript auf einer seite eingebunden, dann gibt es den genannten fehler.
beide skripte öffnen und schliessen eine mysql-verbindung.
der db-zugriff erfolgt nicht auf die TYPO3-datenbank. für meine php-skripte verwende ich eine eigene datenbank.
gruß,
floater
Floater schrieb
beide skripte öffnen und schliessen eine mysql-verbindung.
Bist Du vielleicht über einen Denkfehler gestolpert, wonach PHP nur eine DB-Verbindung offen hält, wenn man nicht explizit via 4. Parameter von mysql_connect() dies mitteilt? Hat mich auch letztens Stunden gekostet.
hallo,
das habe ich auch erst gedacht aber daran liegt es nicht.
aber mir ist jetzt folgendes aufgefallen:
in beiden skripten includiere ich eine config-datei mit den den DB-zugansdaten:
require_once("fileadmin/templates/php/config_db.inc.php");
da liegt der fehler.
wenn ich nur ein skript habe, so tritt kein fehler auf, die zugangsdaten sind bekannt.
bei zwei skripten sind die zugangsdaten für das zweite skript nicht bekannt.
ich habe das "require_once" in meiner zweiten zweiten skript zu "require" geändert. und nun funktioniert es.
allerdings verstehe ich das gerade nicht, das die config ja schon im ersten skript geladen wird.
gruss,
floater