DarkNix: Auslesen des HTTP-Headers den der Brwoser sendet?

Hallo zusammen!

Ich wollte fragen ob es möglich ist, das ich in meinem PHP Script den Header auslesen kann den der Browser gesendet hat um die Seite zu bekommen.
Damit meine ich zB. folgendes:

GET /index.html HTTP/1.1
Host: www.example.net

Jemand ne Idee wie das Funktioniert?
Wäre euch sehr dankbar!

Grüße & schönen Abend noch,
DarkNix

  1. Hi,

    Ich wollte fragen ob es möglich ist, das ich in meinem PHP Script den Header auslesen kann den der Browser gesendet hat um die Seite zu bekommen.
    Damit meine ich zB. folgendes:

    GET /index.html HTTP/1.1
    Host: www.example.net

    Jemand ne Idee wie das Funktioniert?

    Schau in $_SERVER nach, welche Informationen dir zur Verfuegung stehen.

    apache_request_headers() koennte u.U. auch von Interesse sein.

    MfG ChrisB

  2. Hello,

    Ich wollte fragen ob es möglich ist, das ich in meinem PHP Script den Header auslesen kann den der Browser gesendet hat um die Seite zu bekommen.

    Jemand ne Idee wie das Funktioniert?

    siehe auch http://forum.de.selfhtml.org/archiv/2006/10/t139327/#m904985

    Ein harzliches Glückauf

    Tom vom Berg

    http://bergpost.annerschbarrich.de
    .

    --
    Nur selber lernen macht schlau
    1. Hello,

      Ich habe das eben mal auf meinem WAMPP ausprobiert. Da ist leider null Erregung bei input oder sdtin
      Geht das nicht auf einem WAMPP und wenn ja, warum nicht?
      Oder habe ich irgendwo einen Denkfehler? Wäre ja für Schlafwandler nix außergewöhnliches ;-)

      <?php   ### get_request_headers ###

      error_reporting(E_ALL);

      $fh = fopen('php://input','r');
      $stream = fread($fh, 4948);
      fclose($fh);

      $_parts = explode("\r\n",$stream);
      $_headers = getallheaders();

      echo "<pre>\r\n";
      echo "<h1>Input Stream</h1>\r\n";
      echo htmlspecialchars(print_r($_parts[0],1));
      echo "<h1>Apache Headers</h1>\r\n";
      echo htmlspecialchars(print_r($_headers,1));
      echo "</pre>\r\n";

      ?>

      Ein harzliches Glückauf

      Tom vom Berg

      http://bergpost.annerschbarrich.de
      .

      --
      Nur selber lernen macht schlau
      1. (H[ae]llo|Hi(ho)|Tag|Mahlzeit) Tom,

        Ich habe das eben mal auf meinem WAMPP ausprobiert. Da ist leider null Erregung bei input oder sdtin
        Geht das nicht auf einem WAMPP und wenn ja, warum nicht?
        Oder habe ich irgendwo einen Denkfehler? Wäre ja für Schlafwandler nix außergewöhnliches ;-)

        Dort wo du suchst ("php://input"), finden sich keine Request-Header, sondern nur die bei einem POST-Request hochgeladenen Daten -- und auch nur dann, wenn diese nicht über ein Formular mit enctype="multipart/form-data" hochgeladen wurden:
        http://www.php.net/manual/en/wrappers.php.php

          
        if ( !isset( $_SERVER['CONTENT_TYPE'] ) || !preg_match( '/\Amultipart\/form-data/i', $_SERVER['CONTENT_TYPE'] ) ) {  
          /// get raw POST data  
          $fh = fopen('php://input', 'r');  
          for ( $input = STR_EMPTY; $buffer = fread($fh, 4948); $input .= $buffer ) {  
          }  
          fclose($fh);  
        }  
        else {  
          // a file upload happened, PHP killed the user input data ...  
          // you have to use the hashes $_POST and $_FILE!  
          $input = '';  
        }  
        
        

        $stream = fread($fh, 4948);

        Auf Grund welcher Kalkulationen kommt die 4948 zu Stande?

        MffG
        EisFuX

        1. Hello,

          $stream = fread($fh, 4948);
          Auf Grund welcher Kalkulationen kommt die 4948 zu Stande?

          Sorry, so hat sie nur dazu gedient, festzustellen, ob überhaupt jemand diesen Abschnitt liest ;-)
          Sollte eigentlich 4096 heißen... Haben die Finger mal wieder was anderes gemacht, als der Kopf

          Danke für Deine Infos zu den Request-Headern.

          Ein harzliches Glückauf

          Tom vom Berg

          http://bergpost.annerschbarrich.de
          .

          --
          Nur selber lernen macht schlau
          1. (H[ae]llo|Hi(ho)|Tag|(Guten A|Na)bend) Tom,

            $stream = fread($fh, 4948);
            Auf Grund welcher Kalkulationen kommt die 4948 zu Stande?

            Sorry, so hat sie nur dazu gedient, festzustellen, ob überhaupt jemand diesen Abschnitt liest ;-)

            Ach sooo, ich hatte komplizierte Benchmarking-Tests dahinter vermutet. ;-)

            Sollte eigentlich 4096 heißen... Haben die Finger mal wieder was anderes gemacht, als der Kopf

            B.T.W.: http://de3.php.net/manual/de/function.fread.php#74162

            Ein harzliches Glückauf
            Tom vom Berg
            http://bergpost.annerschbarrich.de

            Hey, gestern wurde Annerschbarrich in der Tourismusbeilage unserer regionalen Tageszeitung erwähnt, wegen der Ende April tieffliegenden Besen. ;-)

            MffG
            EisFuX

            1. Hello,

              Sollte eigentlich 4096 heißen... Haben die Finger mal wieder was anderes gemacht, als der Kopf

              B.T.W.: http://de3.php.net/manual/de/function.fread.php#74162

              Das ist ja interessant.
              Allerdings ist es hier wahrscheinlich nicht möglich, die Größe vorherzubestimmen, da die ja erst im zu lesenden Block vermutet wird, wenn ein Anhang mitkommt.

              Man müsste der Ordnung halber also auch eine Leseschleife aufbauen mit kleinerer Blockgröße.
              PHP allokiert aber sowieso 8kB für jeden Filebuffer. Da sind 4k dann doch durchaus zulässig, oder?

              Hey, gestern wurde Annerschbarrich in der Tourismusbeilage unserer regionalen Tageszeitung erwähnt, wegen der Ende April tieffliegenden Besen. ;-)

              Danke für die Info.

              Ein harzliches Glückauf

              Tom vom Berg

              http://bergpost.annerschbarrich.de
              .

              --
              Nur selber lernen macht schlau