Torsten: Problem mit Klassen-Methode

Hallo,

mein alter Beitrag befindet sich mittlerweile im Archiv, jetzt wird wahrscheinlich keiner mehr Antworten:
http://forum.de.selfhtml.org/archiv/2005/7/t111897/#m706039

Ich habe meine eigentlich Problemstellung erst ziemlich spät gestellt, so dass dieser Betrag im Forum schon ziemlich weit nach unten gewandert ist. Ich denke das er nicht mehr gelesen wurde, ich würde mich wirklich sehr freuen wenn sich das mal einer ansehen könnte. Danke.

Gruß
Torsten

  1. echo $begrüßung;

    Ich habe meine eigentlich Problemstellung erst ziemlich spät gestellt, so dass dieser Betrag im Forum schon ziemlich weit nach unten gewandert ist.

    Die Problembeschreibung war recht undurchsichtig. Sie holte zu einem großen Runumschlag aus, ohne das konkrete Problem auf das Wesentlichste bereits eingekreist zu haben. Mir entfiel mittendrin schon die Lust weiterzulesen.

    Was hast du bereits getan, um dem Fehler auf die Spur zu kommen? Hast du das Script schrittweise getestet, ob alle Variableninhalte und Funktionsergebnisse tatsächlich deinen Erwartungen entsprechen? -> Kontrollausgabe der Werte mit var_dump() / echo / print_r()

    Gibt es sonstige Fehlermeldungen, Warnungen, Notizen (error_reporting auf E_ALL gestellt?)?

    Wenn der Provider eine andere Version -- und noch dazu eine andere Major-Versionsnummer -- einsetzt, wäre es sinnvoll, dass du auch die Version des Providers installierst. Die Einstellung der gleichen Konfigurationsparameter (phpinfo()) wie beim Provider ist zum Nachvollziehen auch anzuraten.

    Was mir auffällt ist eine inkonsequente Arbeitsweise der Methode set_content(). In Abhängigkeit der if-Bedingung wird einmal ein Ergebnis zurückgeliefert, und zum anderen etwas ausgegeben, ohne etwas zurückzuliefern.

    echo "$verabschiedung $name";

    1. Hi,

      Die Problembeschreibung war recht undurchsichtig. Sie holte zu einem großen Runumschlag aus, ohne das konkrete Problem auf das Wesentlichste bereits eingekreist zu haben. Mir entfiel mittendrin schon die Lust weiterzulesen.

      mhmm, ich dachte eigentlich das ich konkret auf mein Problem eingegangen bin: Nach dem Einloggen ins Forum, gehen Eigenschaften der iframe verloren, wie z.B. scrolling="no" und allowtransparency="true"

      Was hast du bereits getan, um dem Fehler auf die Spur zu kommen? Hast du das Script schrittweise getestet, ob alle Variableninhalte und Funktionsergebnisse tatsächlich deinen Erwartungen entsprechen? -> Kontrollausgabe der Werte mit var_dump() / echo / print_r()

      komischerweise entsprechen alle Variableninhalte und Funktionsergebnisse tatsächlich meinen Erwartungen. Bis jetzt habe ich nur Kontrollausgaben getestet, anders wüsste ich nicht zu testen.

      Gibt es sonstige Fehlermeldungen, Warnungen, Notizen (error_reporting auf E_ALL gestellt?)?

      keine Fehlermeldungen, error_reporting ist auf E_ALL gestellt.

      Wenn der Provider eine andere Version -- und noch dazu eine andere Major-Versionsnummer -- einsetzt, wäre es sinnvoll, dass du auch die Version des Providers installierst. Die Einstellung der gleichen Konfigurationsparameter (phpinfo()) wie beim Provider ist zum Nachvollziehen auch anzuraten.

      vielleicht sollte ich auch einfach nur meinen Provider wechseln, PHP5 ist mir sehr sympatisch.

      Was mir auffällt ist eine inkonsequente Arbeitsweise der Methode set_content(). In Abhängigkeit der if-Bedingung wird einmal ein Ergebnis zurückgeliefert, und zum anderen etwas ausgegeben, ohne etwas zurückzuliefern.

      stimmt, hatte ich übersehn.

      Gruß
      Torsten

      1. echo $begrüßung;

        mhmm, ich dachte eigentlich das ich konkret auf mein Problem eingegangen bin: Nach dem Einloggen ins Forum, gehen Eigenschaften der iframe verloren, wie z.B. ...

        Das ist viel zu allgemein gehalten.
        Wenn du einen Fehler in deinem Script vermutest, dann versuche nur dieses zu betrachten. Das Script erhält seine Parameter nicht vom Anmelde-Vorgang, sondern von $_POST/$_GET/... und es macht auch keine Scroll-Balken sondern erzeugt HTML-Quelltext.

        Du hast ein komplexes System aus Benutzer, Webbrowser, Webserver, PHP und dazu kommen noch die Bestandteile deiner Webseite: Forum, Iframe, Navigation, Javascript, CSS, ...
        Versuche die Teile auseinanderzuhalten, deren Grenzen und Schnittstellen zu erkennen.

        Du wirfst alle Teile in einen großen Topf und versuchst nun darin einen Fehler zu finden.

        Beispielsweise:

        Den Content-Bereich habe ich als Klasse geschrieben, in dieser Klasse wird je nach betätigtem Link-Button in der Navigation das entsprechende Heading(Grafisch) und den dazugehörigen Inhalt im Content-Bereich erzeugt, alles ohne Frames.

        "Content-Bereich" ist ein Ding, das vielleicht der Benutzer als solchen erkennen kann. "Die Klasse" interessiert sich nicht dafür.
        Der "Link-Button" ist ein Ding, das der Webbrowser dem Benutzer anzeigt. "Die Klasse" kennt keine "Link-Buttons" und erkennt auch nicht, ob der betätigt wurde.

        usw. usf.

        "Die Klasse" erhält Parameter und erzeugt eine Ergebnis. Woher die Parameter kommen, was mit dem Ergebnis passiert ist aus der Sicht der Klasse irrelevant.

        Arbeitet die Klasse zu deiner Zufriedenheit? Gibt sie mit den ihr übergebenen Parametern das gewünschte Ergebnis aus/zurück - wobei hier nicht das Ergebnis im Browser sondern der erzeugte String (den andere Teile des Systems möglicherweise als HTML ansehen können) gemeint ist. Wenn nicht: Ist es ein interner Verarbeitungsfehler? Wenn nicht: Bekommt sie falsche Parameter? Woher bekommt sie diese Parameter? Verfolge diese Spur.
        Wenn die Klasse richtig arbeitet, dann betrachte sie als schwazen Kasten und widme dich den Teilen des Systems, die ihr Ergebnis verarbeiten. Vielleicht landet die Ausgabe nicht dort wo sie hinsoll, vielleicht wurde auch einfach nur ein falsches Script aufgerufen, ...

        Wenn dein Script unter PHP5 richtig arbeitet, unter PHP4 jedoch nicht: Hast du dir die Unterschiede zwischen beiden Versionen angeschaut? Verwendest du vielleicht Features/Funktionen, die PHP4 noch nicht kennt? Gibt es Eigenarten, die in PHP5 geändert wurden, z.B. Beachtung von Groß-/Kleinschreibung, die du verwendest?

        echo "$verabschiedung $name";