ausgelagerte Funktion geht nicht
Jakob Schneider
- php
0 Marc Reichelt0 onkel_jo
0 benni0 ulli0 Sven Rautenberg
Moin Leute,
ich habe eine Funktion mit einer Datenbankabfrage, die einige Parameter über den URL bekommt. Lasse ich die Funktion in der Seite, geht alles.. Lagere ich die Funktion jedoch in eine include-Datei aus, bekomme ich MySQL-Fehler, obwohl alle benötigten Variablen vorhanden sind..
Woran könnte das liegen?
Danke schonmal...
LG Jakob
Hi Jakob!
Ich kenne mich selbst mit MySQL nicht so gut aus, glaube aber, dass der PHP-Webspace, den du benutzt, im Safemode läuft (d.h. include- und exec-Funktionen funktionieren nicht).
Bei mir bei Puretec ist das so, da kann ich mich manchmal richtig schwarz ärgern *grrr*
Ich hoffe mal das ist die Antwort auf dein Problem.
cu
Marc Reichelt || http://www.marcreichelt.de/
Sorry Marc,
Ich kenne mich selbst mit MySQL nicht so gut aus, glaube aber, dass der PHP-Webspace, den du benutzt, im Safemode läuft ...
ääähm? Fragezeichen ?? was hat das Ausgangsproblem mit MySQL zu tun?
er will doch nur was "includen" ...
nebenbei was ist der "Safemode" - wie wirkt er sich genau aus - bei welchen hostern kommt er zum Einsatz ...
gruß
onkel_jo
hi!
(ich bin mir über das folgenden absolut nicht sicher, also korrigiert mich bitte, wenns falsch ist...)
also es kommt glaube ich darauf an, wie du die datei inkludierst:
mit include(): dann wird die datei erst geparst, und dann in das script eingefügt
mit require(): dann wird erst der inhalt eingefügt, und dann wird das ganze geparst -> dann sind auch die übergebenen variablen benutzbar.
--> versuchs mit require("datei.inc");
aber das ganze hab ich vor kurzem irgendwo gelesen und ich bin mir nicht sicher, ob das so stimmt... aber naja, probieren geht über studieren (meistens jedenfalls ;) ).
viele grüße,
benni
Ich hab grad das hier in meinem php handbuch gefunden. vielleicht hilft's ja:
Wichtig ist, dass beim include()- oder require()-Befehl vom PHP-Parsing-Modus in den HTML-Modus geschaltet wird und bei Rückkehr in das aufrufende Skript wieder zurück vom HTML- in den PHP-Modus. Deshalb muss jeder PHP-Code innerhalb der eingebundenen Dateien umschlossen werden von gültigen PHP-Start- und Ende-Tags.
Halli Uli
das hatte ich Jakob schon in seinem letzten Thread mitgeteilt, er möge darauf achten, dass in der zu inkludierenden Datei vor und nach dem PHP-Teil KEINE Zeichen mehr stehen, auch kein Zeilenumbruch!
Das führt meistens zu Fehlern.
Außerdem wäre es noch interessant zu wissen, wo er die Funktion includiert und wo er sie aufruft. Gerade bei der Interpretiation von SQL-Strings ist das wichtig. Wird der SQL-String nämlich außerhalb der Funktion zusammengebaut (zugewiesen), dann ist auf jeden fall seine Gülrigkeit zu hinterfragen. Er setzt sich dann ja aus "alten" Scriptvariablen zusammen. Dieser Fehler wird gerne gemacht - auch von mir von Zeit zu Zei mal wieder. Ist meistens Bequemlichkeit. Die rächst sich dann schnell.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo benni,
mit include(): dann wird die datei erst geparst, und dann in das script eingefügt
mit require(): dann wird erst der inhalt eingefügt, und dann wird das ganze geparst -> dann sind auch die übergebenen variablen benutzbar.
Nein, es ist genau umgekehrt.
Grüße aus Darmstadt,
Benjamin
poste doch mal bitte die betroffenen codezeilen und die URL, die du übergibst.
Moin!
ich habe eine Funktion mit einer Datenbankabfrage, die einige Parameter über den URL bekommt. Lasse ich die Funktion in der Seite, geht alles.. Lagere ich die Funktion jedoch in eine include-Datei aus, bekomme ich MySQL-Fehler, obwohl alle benötigten Variablen vorhanden sind..
Welcher Fehler? Wie sieht dein Code aus?
Woran könnte das liegen?
Meine Glaskugel ist noch in der Spülmaschine.
- Sven Rautenberg