OO-PHP "steuern"

  • Guten Abend,

    ich hänge an einem Problem und komme nicht weiter.
    Vielleicht wird mir hier der entscheidende Rat gegeben.

    Und zwar habe ich eine PHP Klasse, die verschiedene Datenfelder und Methoden enthält (hier: testklasse.php)
    In meiner index.php include ich diese testklasse.php und erzeuge ein neues Objekt dieser Klasse.

    Meine index.php enthält mehrere Formulare, mit Hilfe derer ich Nutzereingaben verarbeiten möchte und teilweise Values der Input-Felder an die Methoden der testklasse.php übergebe und somit Veränderungen der Datenfelder durchführe.

    Das darauf folgende Formular ist vom 1. Formular abhängig. Hier müssen also die Datenfelder, die mit den Werten des 1. Formulars gefüllt wurden, abgefragt werden.

    Zum Problem:

    Wenn ich das Formular an meine index.php "abschicke" lädt die Seite neu und somit ist auch mein Objekt weg(?) wodurch ich auch nicht mehr auf meine Datenfelder meines zuvor erstellten Objekts zugreifen kann.
    Wenn ich das Formular per jQuery "absende" und die Daten per AJAX verarbeiten möchte. Wie kann ich dann auf das Objekt, was in der index.php erzeugt wurde zugreifen? und Methoden des Objekts aufrufen bzw. get()-Methoden des Objekts so verarbeiten, dass das auf das vorige Formular folgende Formular von der get()-Methode und somit vom Datenfeld abhängig ist?


    Ich hoffe ihr konntet mir folgen und habt einen Rat für mich.
    Danke :cry:

    [SIGPIC][/SIGPIC]

  • Deine Daten (Objekt) müssen nicht weg sein, dafür gibt es Sessions

  • Okay. Vielen Dank. Dass passt auch soweit.
    Jetzt nur noch die eine Frage: Wenn ich das ganze dynamisch per jQuery halten will, arbeite ich per AJAX und lese / bearbeite das Objekt aus der Session?

    [SIGPIC][/SIGPIC]

  • quasi.
    du machst dir eine datei, die die daten aus der session ausliest, es bleibt bei dir, ob du ganzes html ausgibst damit oder ob du JSON-objekte lieferst mit diesen daten.
    du machst also ein paar bedingen (post/get/session), die gesetzt sein müssen, damit man nicht einfach so an diese werte kommt, sondern eben nur mit den ensprechenden "sicherungskonditionen".

    dann machste den ajax-call und liest deine geholten daten aus und verbrätst den kram mit dienem script

  • So. Habe mich jetzt mal an der Umsetzung versucht und hab leider noch ein paar Probleme.

    Nur nochmal zum Verständnis:

    Ich habe diese 4 Dateien:


    • index.php (Erstellen des Objekts / bzw. Lesen des Objekts aus der Session wenn vorhanden)
    • class.php (Klasse mit den Methoden und Attributen, von der das Objekt in der index.php erstellt wird)
    • functions.js (enthält mit jQuery realisierte Event-Handler; diese sollen Methoden der class.php aufrufen und deren Rückgabewert/e in der index.php einfügen)
    • interface.php (Schnittstelle zwischen functions.js und class.php)


    Derzeit habe ich es so probiert, dass ich AJAX/POST Requests mittels jQuery zur interface.php schicke. In dieser hole ich mir das zuvor erstellte Objekt aus der Session und definiere Methoden, die dann Methoden der class.php ausführen und gegebenenfalls noch mehr machen.

    1. Frage:

    Bislang habe ich noch keinen Weg gefunden, eine function() aus einer .php-Datei direkt mit jQuery bzw. einem AJAX-Request aufzurufen. Nur die Möglichkeit einen Parameter mit zu übergeben, der den Funktions-Namen enthält. Ist diese Taktik sicher, wenn ich abfrage ob dieser Funktions-Name als Funktion existiert und diese dann aufrufe? Gibt es eine elegantere Art? Man könnte wohl für jede Funktion eine einzelne .php-Datei anlegen, möchte ich aber eigentlich vermeiden wollen.

    2. Frage:

    Muss ich mit Sicherheitslücken rechnen, wenn ich die Methodik, Inhalt aus einer .php-Datei zu holen und in die index.php "pflanzen", per jQuery umsetze?


    Danke für Feedback, Lösungen und Anregungen :)

    [SIGPIC][/SIGPIC]