Ankündigung

Einklappen
Keine Ankündigung bisher.

Passiert nix,- wie kann ich rausbekommen wo es hängt?

Einklappen

Neue Werbung 2019

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

  • Passiert nix,- wie kann ich rausbekommen wo es hängt?

    Hi,

    ich bin gerade dabei ein Forenplugin anzupassen, weil es nicht mehr auf der aktuellen PHP Version lief. Die PHP Sachen habe ich denke ich in den Griff bekommen.

    Nun habe ich folgende Situation:
    Es geht um eine Bildergalerie,- ums Kind beim Namen zu nennen RGallery Plugin für Woltlab Forum.

    Was man tun kann sind dort eben Bilder hochladen und diese kommentieren.
    Möchte ich einen Kommentar löschen habe ich ein (x) Button zum löschen. Dann kommt eine Meldung, ob der Kommentar wirklich weg soll und dann passiert nix.

    Und das ist eben meine Frage: Wie kann ich raus bekommen, an welcher Stelle es hängt?

    Was ich sehe:
    Wenn ich über den Löschen Button gehe sehe ich die Aktion: javascript: deleteComment (Nummer des Kommentars in der Klammer) .

    Nun habe ich mir die Datei raus gepickt wo die Funktion drin steckt und fand das:
    PHP-Code:
    <!--
            function 
    deleteComment(commentID) {
                if(
    confirm('{lang}de.0xdefec.rgallery.ask_deleteComment{/lang}')) {
                    var 
    url '{@RELATIVE_WBB_DIR}index.php?page=RGalleryAction&type=deleteComment&id='+commentID+'{if $from != ''}&from={$from}{/if}{@SID_ARG_2ND_NOT_ENCODED}';
                    new 
    Ajax.Request(url, {
                        
    method'get',
                        
    onSuccess: function() {
                            
    Effect.Fade('comment_'+commentID);
                            }
                        });
                    }
                }
            function 
    deleteItem(itemID) {
                if(
    confirm('{lang}de.0xdefec.rgallery.ask_deleteItem{/lang}')) {
                    
    top.location.href='{@RELATIVE_WBB_DIR}index.php?page=RGalleryImageWrapper&itemID={$data.itemID}&type=delete{if $from != ''}&from={$from}{/if}{@SID_ARG_2ND_NOT_ENCODED}';
                    }
                }
        --> 
    Im ersten Teil wird ja nur das Abfragefenster aufgemacht, wo man das Löschen bestätigen soll.

    Nun und an dieser Stelle hänge ich jetzt fest. Ohne Fehler nix ( kein Seiten neu laden oder sonst was,- einfach passiert nix, wenn man das Löschen bestätigt) ist für mich jetzt doch schwer.

  • #2
    Entwicklertools öffnen und genau den Request ansehen.
    [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

    Kommentar


    • #3
      Ah ok,... da habe ich das raus bekommen:
      Code:
      Request-URL: 	http://www.webseite.de/wbb/index.php?page=RGalleryAction&type=deleteComment&id=762
      Request-Methode: 	GET
      Status-Code: 	HTTP/1.1 503 Service Unavailable
      Was hat dies zu bedeuten?

      Kommentar


      • #4
        Kommt da nen Content mit?
        [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

        Kommentar


        • #5
          Ich bin mal der Spur hinterher gegangen.
          Ich glaube die PHP Version hat Probleme mit den $this .

          Und genau das ist in der Systemdatei wohl an der Stelle:
          PHP-Code:


          public function deleteItem() {
                  
                  
          // first we start deleting the image itself
                  
          $sql "SELECT * FROM wcf" WCF_N "_rGallery_items WHERE itemID='" intval($this->itemID) . "' LIMIT 1";
                  
          $row WCF::getDB()->getFirstRow($sql);
                  if (!
          $row)
                      return 
          false;
                  
          $sql "DELETE FROM wcf" WCF_N "_rGallery_items WHERE itemID='" intval($this->itemID) . "'";
                  
          $result1 WCF::getDB()->sendQuery($sql);
                  
          $sql "DELETE FROM wcf" WCF_N "_rGallery_items_owner WHERE itemID='" intval($this->itemID) . "'";
                  
          $result2 WCF::getDB()->sendQuery($sql);
                  
          $sql "DELETE FROM wcf" WCF_N "_rGallery_items_cat WHERE itemID='" intval($this->itemID) . "'";
                  
          $result3 WCF::getDB()->sendQuery($sql);
                  
          $sql "DELETE FROM wcf" WCF_N "_rGallery_items_tag WHERE itemID='" intval($this->itemID) . "'";
                  
          $result4 WCF::getDB()->sendQuery($sql);
          // hier glaube ich liegt der hase im Pfeffer:         
          $result5 $this->deleteComments();
                  if (!
          $result1 || !$result2 || !$result3 || !$result4 || !$result5)
                      return 
          false;
                  
          $thumb_name $this->upload_dir '/thumb_' $row ['itemPath'] . '.jpg';
                  
          $tthumb_name $this->upload_dir '/tthumb_' $row ['itemPath'] . '.jpg';
                  
          $preview_name $this->upload_dir '/preview_' $row ['itemPath'] . '.jpg';
                  
          $image_name $this->upload_dir '/image_' $row ['itemPath'] . '.jpg';
                  
          $orig_name $this->upload_dir '/' $row ['itemPath'] . '.' $row ['itemOrigExtension'];
                  if (!
          unlink($thumb_name) || !unlink($tthumb_name) || !unlink($preview_name) || !unlink($image_name)) {
                      return 
          false;
                  }
                  if (
          file_exists($orig_name))
                      
          unlink($orig_name);
                  return 
          true;
              } 
          Wie kann ich das ggf. anders anbringen ohne den $this ?

          Kommentar


          • #6
            Zitat von flexxer Beitrag anzeigen
            Ich glaube die PHP Version hat Probleme mit den $this.
            Wie kommst du darauf?
            [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

            Kommentar


            • #7
              Ok, ist das der Fehler:
              habe Netzwerk Request untersuchen offen und da -> Response-Body :

              <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" xml:lang="en"> <head> <title>Fatal error: PHP error in file /web/1/000/020/033/35784/htdocs/wbblite2/lib/page/RGalleryActionPage.class.php (19): Non-static method RGallerySystem::isGalleryModerator() should not be called statically, assuming $this from incompatible context</title> <style type="text/css"> /*<![CDATA[*/ .systemException { border: 1px outset lightgrey; padding: 3px; background-color: lightgrey; text-align: left; overflow: auto; font-family: Verdana, Helvetica, sans-serif; font-size: .8em; } .systemException div { border: 1px inset lightgrey; padding: 4px; } .systemException h1 { background-color: #154268; padding: 4px; color: #fff; margin: 0 0 3px 0; font-size: 1.15em; } .systemException h2 { font-size: 1.1em; margin-bottom: 0; } .systemException pre, .systemException p { margin: 0; } .systemException pre { font-size: .85em; font-family: "Courier New"; } /*]]>*/ </style> </head> <body> <div class="systemException"> <h1>Fatal error: PHP error in file /web/1/000/020/033/35784/htdocs/wbblite2/lib/page/RGalleryActionPage.class.php (19): Non-static method RGallerySystem::isGalleryModerator() should not be called statically, assuming $this from incompatible context</h1> <div> <p></p> <h2>Information:</h2> <p> <b>error message:</b> PHP error in file /web/1/000/020/033/35784/htdocs/wbblite2/lib/page/RGalleryActionPage.class.php (19): Non-static method RGallerySystem::isGalleryModerator() should not be called statically, assuming $this from incompatible context<br /> <b>error code:</b> 0<br /> <b>file:</b> /web/1/000/020/033/35784/htdocs/wbblite2/wcf/lib/system/WCF.class.php (285)<br /> <b>php version:</b> 5.5.18<br /> <b>wcf version:</b> 1.1.10 pl 2 (Tempest)<br /> <b>date:</b> Thu, 20 Nov 2014 00:57:45 +0000<br /> <b>request:</b> /wbblite2/index.php?page=RGalleryAction&amp;type=deleteComme nt&amp;id=762<br /> <b>referer:</b> http://www.webseite.de/wbblite2/index.php?page=RGalleryImageWrapper&amp;itemID=118 9&amp;type=page<br /> </p> <h2>Stacktrace:</h2> <pre>#0 /web/1/000/020/033/35784/htdocs/wbblite2/lib/page/RGalleryActionPage.class.php(19): WCF::handleError(2048, 'Non-static meth...', '/web/1/000/020/...', 19, Array) #1 /web/1/000/020/033/35784/htdocs/wbblite2/wcf/lib/page/AbstractPage.class.php(46): RGalleryActionPage-&gt;show() #2 /web/1/000/020/033/35784/htdocs/wbblite2/wcf/lib/util/RequestHandler.class.php(64): AbstractPage-&gt;__construct() #3 /web/1/000/020/033/35784/htdocs/wbblite2/wcf/lib/util/RequestHandler.class.php(92): RequestHandler-&gt;__construct('RGalleryAction', Array, 'page') #4 /web/1/000/020/033/35784/htdocs/wbblite2/index.php(11): RequestHandler::handle(Array) #5 {main}</pre> </div> </div> </body> </html>

              Kommentar


              • #8
                Code:
                Fatal error: PHP error in file /web/1/000/020/033/35784/htdocs/wbblite2/lib/page/RGalleryActionPage.class.php (19): Non-static method RGallerySystem::isGalleryModerator() should not be called statically
                Da hast du's.
                [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

                Kommentar


                • #9
                  Jupp, dachte ich mir. Nun verlassen mich wieder die Kenntnisse. Jetzt müsste ich halt den Funktionsaufruf von statisch ( woran auch immer ich den erkenne ) in nicht statisch ändern.

                  Evtl.kannst du es mir kurz erklären, wenn es deine Zeit hergibt:
                  PHP-Code:
                          if (RGallerySystem::isGalleryModerator(WBBCore::getUser()->userID)) { // the requesting user is gallery mod - he/she is allowed to do everything 

                  Kommentar


                  • #10
                    Gibt es eine Instanz von RGallerySystem? Dann wäre sowas gemeint:
                    PHP-Code:
                    $RGallerySystem->isGalleryModerator/*...*/ ); 
                    Competence-Center -> Enjoy the Informatrix
                    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                    Kommentar


                    • #11
                      Hi,

                      hatte leider nicht geklappt dies zu einer Variablen zu machen: Undefined variable: RGallerySystem

                      Kommentar


                      • #12
                        Das war auch nur als Beispiel gemeint. Ob es eine Instanz der Klasse gibt und wie die heißt, mußt Du uns sagen, da wir ( zumindest ich ) Dein verwendetes System nicht kennen!
                        Competence-Center -> Enjoy the Informatrix
                        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                        Kommentar


                        • #13
                          Ich dachte es geht um die Art vom Aufruf einer Funktion, denn wenn ich es richtig verstanden habe, wurde jetzt aus der Funktion eine Variable gemacht, aber muss doch eine Fkt. bleiben, nur der Aufrufsoperator sich ändern, oder?

                          Ich bin noch nicht ganz so fit in PHP wie du siehst, falls das jetzt eine doofe Aussage war bitte korrigieren.
                          Brauchst du weitere Infos,- wenn ja welche?

                          Kommentar


                          • #14
                            Code:
                            wenn ich es richtig verstanden habe, wurde jetzt aus der Funktion eine Variable gemacht
                            Nein, vorher war es keine Funktion, sondern ein/e Klassenbezeichner/-referenzierung.

                            Beispiel ( minimalistisch! ) zur Verdeutlichung, was gemeint war:
                            PHP-Code:
                            // Wir setzen eine Klasse vorraus, hier praktischer Weise RGallerySystem
                            class RGallerySystem {


                                
                            // NICHT-STATISCHE Methode
                                
                            public function something() {

                                    
                            // ... was hier passiert ist erstmal unerheblich

                                
                            }


                                
                            // STATISCHE METHODE
                                
                            public static function somethingElse() {

                                    
                            // ... s.o.

                                
                            }


                            }

                            // Aufruf STATISCHE Methode:
                            RGallerySystem::somethingElse();

                            // Aufruf NICHT-STATISCHE Methode:
                            $oRGallerySystemObject = new RGallerySystem;
                            $oRGallerySystemObject->something(); 
                            Deine Fehlermeldung besagt, daß Du eine NICHT-STATISCHE Methode, wie bspw. hier die something() versuchst, STATISCH aufzurufen.
                            Daher geht meine Vermutung dahin, daß es eine Instanz der Klasse RGallerySystem, ähnlich dem $oRGallerySystemObject in dem Beispiel oben gibt!
                            Competence-Center -> Enjoy the Informatrix
                            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                            Kommentar


                            • #15
                              Ich habe es in einer RGallerySystem.class.php glaube ich gefunden:
                              PHP-Code:
                              ...
                              class 
                              RGallerySystem {

                                  function 
                              RGallerySystem() {

                              ... 
                              Kannst du damit was anfangen?

                              Kommentar

                              Lädt...
                              X