Ankündigung

Einklappen
Keine Ankündigung bisher.

post_vars()-Alternative in PHP5?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • post_vars()-Alternative in PHP5?

    Ich habe in einem PHP-Forum eine Änderung vorgenommen, in olgender Zeile tritt ein Fehler auf:
    PHP-Code:
    $cm_viewprofile->post_vars($template,$profiledata,$userdata); 
    Und zwar folgender:
    Code:
    Fatal error: Call to a member function post_vars() on a non-object in /web/abi/phpBB2/includes/usercp_viewprofile.php on line 280
    Das Problem kenne ich auch schon. post_vars() gibt es nur in PHP4 - ich nutze allerdings PHP5, und kann das nicht ändern.

    Gibt es eine post_vars() Alternative für PHP5?

    Danke schon Mal im Vorraus.


  • #2
    $cm_viewprofile ist kein Objekt, folglich kannst du keine Methode darauf aufrufen. Einfach mal die Fehlermeldung lesen!

    Mit der PHP-Version hat das nichts zu tun.

    Kommentar


    • #3
      Das Problem ist unter phpBBlern bekannt, die so wie ich den Cash MOD nutzen. Alle kommen zu dem Ergebnis, dass das ganze bei PHP4 funktioniert und bei PHP5 nicht.

      Warum funktioniert es dann bei PHP4?

      Kommentar


      • #4
        Zitat von NoMoKeTo
        Das Problem ist unter phpBBlern bekannt, die so wie ich den Cash MOD nutzen. Alle kommen zu dem Ergebnis, dass das ganze bei PHP4 funktioniert und bei PHP5 nicht.

        Warum funktioniert es dann bei PHP4?
        Wenn Du das sagst...

        Ansonsten versuch die Installation noch einmal Schritt für Schritt durchzugehen bzw. frage direkt hier:
        http://www.phpbb.com/phpBB/viewtopic.php?t=94055

        Kommentar


        • #5
          Zitat von NoMoKeTo
          Das Problem ist unter phpBBlern bekannt
          Dann ist die Frage vermutlich auch besser in einem auf phpBB spezalisierten Forum aufgehoben.

          Kommentar


          • #6
            Dort finde ich nur antowrten zu "Das geht nur bei php4, nicht bei php5!".
            Und deswegen dachte ich, dass "Freunde" von php, vielleicht noch einiges mehr darüber sagen könnten.

            Außerdem denke ich, dass es hilfreich sein kann, die Frage in mehr als einem Forum zu stellen.

            Kommentar


            • #7
              Zitat von NoMoKeTo
              Warum funktioniert es dann bei PHP4?
              post_vars() ist keine native PHP-Funktion, sondern eben eine Methode einer Klasse. Ein Aufruf funktioniert also prinzipiell in beiden Versionen halbwegs gleich. $cm_viewprofile ist nun aber kein Objekt dieser Klasse mit dieser Funktion, sondern irgendwas anderes. Lass dir doch mal ausgeben, was diese Variable enthält (mit var_dump()).

              Da musst du also nach dem "Fehler" (abweichenden Verhalten der neuen PHP-Version) suchen. Mir fällt spontan nicht ein, wie man mit dem selben Code für PHP 4 ein Objekt und mit PHP 5 was anderes erhalten kann. Oder, doch, klar: Eine Möglichkeit wäre folgendes:

              PHP-Code:
              $A = new A;
              $B $A;
              unset(
              $A);

              $B->doSomething(); 
              In PHP 4 existiert $B weiterhin als von A geklontes Objekt. In PHP 5 wird dieser Code wohl etwa obigen Fehler bringen.

              Vielleicht hilft dir das ja bei der Fehlersuche.

              Basti

              Kommentar


              • #8
                Zitat von NoMoKeTo
                dort finde ich nur antowrten zu "Das geht nur bei php4, nicht bei php5!".
                Und deswegen dachte ich, dass "Freunde" von php, vielleicht noch einiges mehr über php sagen könnten.
                Ich habe den MOD nicht geschrieben und kenne ihn nicht einmal - und habe auch nicht vor ihn mir Deines Problems wegen anzusehen. Ob es hier andere gibt die das vorhaben, keine Ahnung.

                Die geeignetere Zielgruppe findest Du sicherlich dort und vielleicht sogar die Lösung unter den knapp 9000 Beiträgen.

                Kommentar


                • #9
                  Da musst du also nach dem "Fehler" (abweichenden Verhalten der neuen PHP-Version) suchen.
                  Deswegen habe ich den Beitrag hier geschrieben, weil ich ihn selber nicht finde.

                  ...und vielleicht sogar die Lösung unter den knapp 9000 Beiträgen.
                  Nein, die finde ich da eben nicht.

                  Kommentar


                  • #10
                    Zitat von NoMoKeTo
                    Da musst du also nach dem "Fehler" (abweichenden Verhalten der neuen PHP-Version) suchen.
                    Deswegen habe ich den Beitrag hier geschrieben, weil ich ihn selber nicht finde.
                    Mit meinem Tipp auch nicht? Was enthält die Variable denn? Wo und wie wird sie gebildet? An welcher Stelle ist sie zunächst noch ein Objekt (wenn überhaupt) und danach eben nicht mehr?

                    Basti

                    Kommentar


                    • #11
                      Zitat von Basti
                      Oder, doch, klar: Eine Möglichkeit wäre folgendes:

                      PHP-Code:
                      $A = new A;
                      $B $A;
                      unset(
                      $A);

                      $B->doSomething(); 
                      In PHP 4 existiert $B weiterhin als von A geklontes Objekt. In PHP 5 wird dieser Code wohl etwa obigen Fehler bringen.
                      Nein, es wird nur die Referenz $A gelöscht und damit der Referenzzähler für das entsprechende Objekt um eins verringert.

                      PHP-Code:
                      $A = new A// Referenzzähler: 1
                      $B $A// Referenzzähler: 2
                      unset($A); // Referenzzähler: 1

                      $B->doSomething(); // gültiger Aufruf der Methode 

                      Kommentar


                      • #12
                        Nein, wirklich weiter hilft mir das nicht - ich habe die quelltexte durchsucht und finde nichts ähnliches...

                        Kommentar


                        • #13
                          Hast du denn Basti überhaupt mal zugehört und bist dem mal nachgegangen? Jammern hilft nicht weiter.

                          Kommentar


                          • #14
                            Ja ich bin dem mal nachgegangen. Natürlich!

                            Kommentar


                            • #15
                              Zitat von NoMoKeTo
                              Ja ich bin dem mal nachgegangen. Natürlich!
                              Und was hast Du festgestellt? Wird die Datei eingebunden, in der die Klasse definiert wird, eine Instanz des Objekts erzeugt wird? Hast Du alle erforderlichen Konstanten gesetzt?

                              Kommentar

                              Lädt...
                              X