Ankündigung

Einklappen
Keine Ankündigung bisher.

HTTP Methoden PUT und DELETE

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

  • HTTP Methoden PUT und DELETE

    Hallo User,
    habe mich neu im Forum angemeldet und bisschen umgeschaut aber die erweiterte Suche half mir leider nicht weiter, ich hoffe ihr könnt mir weiterhelfen.
    Ich habe einen Nginx Webserver auf dem sich meine index.php Datei befindet. Aus sicht des Client kann ich mit dem Programm cURL einfach Dateien hochladen und löschen. Ich soll dieses Problem in PHP lösen und die config Datei des Servers nicht "berühren".
    Meine Frage lautet: Wie müsste der PHP Code aussehen, damit die http Methoden DELETE und PUT verweigert werden und z.B auf den Statuscode 405 Not Allowed.. weitergeleitet werden.
    Danke.


  • #2
    http://php.net/manual/de/reserved.variables.server.php => Abschnitt REQUEST_METHOD

    Kommentar


    • #3
      Zitat von Tropi Beitrag anzeigen
      Danke für die schnelle Antwort. Was ich nicht genau gefunden habe ist folgender Part:
      PHP-Code:
      $method $_SERVER["REQUEST_METHOD"];
      if(
      $method == 'PUT' || $method == 'DELETE)' 
      Wie gebe ich die Erlaubniss (Enable) oder verweigere ich die Erlaubniss(Disable) der Methoden in PHP

      Kommentar


      • #4
        PHP-Code:
        http_response_code(405); 
        http://php.net/manual/en/function.ht...ponse-code.php

        Kommentar


        • #5
          danke hellbringer aber ich glaube, dass ich mein Problem nicht richtig darstellen konnte.
          Ich weiß garnicht ob es möglich ist, ich möchte nur auf meiner index.php Datei die http Methoden PUT und DELETE verweigern oder erlauben.
          Es wäre nett wenn jemand mir dabei helfen könnte.

          Kommentar


          • #6
            Zitat von Mavci Beitrag anzeigen
            danke hellbringer aber ich glaube, dass ich mein Problem nicht richtig darstellen konnte.
            Ich weiß garnicht ob es möglich ist, ich möchte nur auf meiner index.php Datei die http Methoden PUT und DELETE verweigern oder erlauben.
            Es wäre nett wenn jemand mir dabei helfen könnte.
            Dann führe die Funktion nur in deiner index.php aus. Wo ist das Problem?

            Kommentar


            • #7
              Zitat von hellbringer Beitrag anzeigen

              Dann führe die Funktion nur in deiner index.php aus. Wo ist das Problem?
              ich weiß nicht wie...

              Kommentar


              • #8
                PHP-Code:
                if (in_array($_SERVER['REQUEST_METHOD'], ['PUT''DELETE'])) {
                    
                http_response_code(405);
                } else {
                    
                /// ...

                Kommentar


                • #9
                  Es klappt leider nicht, gehe so vor:
                  von meinem Client aus gebe ich den folgenden Befehl ein .
                  Mein Server mit der index.php Datei soll erkennen das es eine PUT Methode ist und verweigern:
                  Ich weiß weder wo das Problem ist noch wie ich danach suchen soll. Meine letzte Hoffnung ist dieses Forum.

                  Kommentar


                  • #10
                    Das ist kein PUT, das du da machst.
                    Das ist ein POST-Request.

                    Wenn du einen PUT-Request mit curl schicken willst:
                    Code:
                    curl -X PUT <url>
                    Grüße.

                    Kommentar


                    • #11
                      Vor http_response_code() darf keine HTML-Ausgabe stattfinden. Beachte das EVA-Prinzip.

                      Außerdem solltest du immer <?php statt <? verwenden.

                      Kommentar


                      • #12
                        Habe die Fehler korrigiert, dennoch kann ich Daten hochladen.

                        Kommentar


                        • #13
                          Dein Code sieht ja auch anders aus als der, den ich gepostet habe. Was hast du also erwartet?

                          Kommentar


                          • #14
                            Die Datei wird hochgeladen, bevor dein PHP-Script überhaupt läuft. Das kannst du in deinem Script nicht verhindern.
                            Du kannst den Request dann halt ablehnen.
                            Die Datei wird am Ende des Requests wieder gelöscht.

                            Grüße.

                            Kommentar


                            • #15
                              Zitat von php1704 Beitrag anzeigen
                              Die Datei wird hochgeladen, bevor dein PHP-Script überhaupt läuft. Das kannst du in deinem Script nicht verhindern.
                              Du kannst den Request dann halt ablehnen.
                              Die Datei wird am Ende des Requests wieder gelöscht.
                              Das trifft nur auf Form-Uploads zu. Einen simplen PUT-Upload kann man per PHP sehr wohl vorher abwürgen.

                              Kommentar

                              Lädt...
                              X