Jakob Schneider: ausgelagerte Funktion geht nicht

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

--
Homepage? Naja, noch im Aufbau... : http://www.aquariensite.de
Steven Hawking: Ich glaube nicht, dass Zeitreisen in naher Zukunft möglich sein werden, weil wir so heutzutage Besucher aus der Zukunft empfangen müssten....
  1. 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/

    --
    tel.: 0049/6181/72224
    fax.: 0049/6181/740724
    Linux is like a wigmam - no windows, no gates and an Apache inside!!!
    1. 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

  2. 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:

    1. mit include(): dann wird die datei erst geparst, und dann in das script eingefügt

    2. 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

    1. 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.

      1. 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

        --
        Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
    2. Hallo benni,

      1. mit include(): dann wird die datei erst geparst, und dann in das script eingefügt

      2. 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

  3. poste doch mal bitte die betroffenen codezeilen und die URL, die du übergibst.

  4. 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

    --
    "Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)