Rolf B: Was macht diese Zeile PHP code genau?

Beitrag lesen

Hallo Ingo,

ich hätte zwei Hypothesen zur Erklärung dieser Abfrage:

(1) Meine Historiker-Kenntnisse zu PHP sind nicht so ganz ausgeprägt, aber eins weiß ich: Im PHP 4 Handbuch steht neben $_SERVER noch $HTTP_SERVER_VARS als deprecated, und die Warnung, dass die beiden Variablen zwar zu Beginn das Gleiche enthalten würden, aber nicht gleich seien.

Meine Mutmaßung - für die ich keine Dokumente finde - ist nun, dass es $_SERVER vor PHP 4 noch nicht gab. Wenn man also Code schrieb, der unter PHP 3 und 4 laufen sollte, musste man abfragen, ob $_SERVER vorhanden ist. Und eigentlich noch einen Fallback auf $HTTP_SERVER_VARS vorsehen.

Diese Abfrage hat sich in irgendwelchen Samples erhalten und geistert nun durch die Welt, ohne dass man noch wüsste, was sie soll.

Und jetzt sind wir 20 Jahre später. Von $HTTP_SERVER_VARS weiß niemand mehr etwas, und alle PHP Versionen der letzten 20 Jahre enthalten $_SERVER als Superglobal. Auf PHP 3 würden deine Scripte vermutlich nicht einmal laden, geschweige denn starten. Wenn Du denn überhaupt noch einen Server findest, auf dem PHP 3 überhaupt ladbar wäre.

(2) Der Code, den Du da vorzeigst, stammt von jemandem, der ein unsolides Halbwissen über PHP hat und deshalb "zur Sicherheit" prüft, ob $_SERVER vorhanden ist. Solche Leute initialisieren eine Variable auch erstmal auf 0, bevor sie einen anderen Wert zuweisen.

$_SERVER ist da. PHP stellt es Dir bereit. Du musst es nicht auf Existenz prüfen. Und schon gar nicht in dieser Reihenfolge; es ist nun reichlich Quatsch, ins "HTTP_REFERER" Fach vom Schrank zu greifen und erst danach zu schauen, ob da überhaupt ein Schrank steht.

Rolf

--
sumpsi - posui - obstruxi
0 56

Was macht diese Zeile PHP code genau?

oxo888oxo
  • php
  1. 1
    dedlfix
    1. 0
      Tabellenkalk
      1. 0
        oxo888oxo
      2. 0
        dedlfix
        1. 0

          Hier nun doch mal das ganze Script

          oxo888oxo
          1. 0
            dedlfix
            1. 0
              oxo888oxo
              1. 0
                Rolf B
                1. 0
                  oxo888oxo
          2. 0
            Rolf B
            1. 0
              oxo888oxo
              1. 0
                dedlfix
                1. 0
                  oxo888oxo
                  1. 0
                    dedlfix
                    1. 0
                      oxo888oxo
                  2. 0
                    Rolf B
                    1. 0
                      dedlfix
          3. 2
            Mitleser 2.0
            1. 0
              oxo888oxo
              1. 0
                Mitleser 2.0
                1. 0
                  oxo888oxo
                2. 0

                  PHP: error_log();

                  Raketenlogbuchschreiber
                  1. -1
                    Raketenlogbuchschreiber
                    1. 0

                      Verwendungsbeispiel

                      Raketenlogbuchschreiber
                  2. 0

                    PHP: error_log(); Logrotate

                    TS
                    • linux
                    • php
                    1. 0
                      Raketenlogbuchschreiber
            2. 1
              dedlfix
              1. 0
                TS
                • dateisystem
                • php
                • webserver
                1. 0
                  Mitleser 2.0
                  1. 0
                    Frank
                    1. 0
                      Raketenfleischwurst
                      1. 0

                        Zum Forum

                        Raketenfleischwurst
                        • zu diesem forum
                        1. 0
                          Der Martin
                          1. 0
                            Raketenfleischwurst
                            1. 0
                              Raketenwissenschaftler
                              1. 0
                                klawischnigg
                                1. 0
                                  Raketenwissenschaftler
                                  1. 0
                                    klawischnigg
                                    1. 0
                                      Raketenwissenschaftler
                                  2. 0
                                    Raketenfleischwurst
                              2. 0
                                Amateurpsychologe
                                1. 0
                                  Raketenennachrichtenempfangsbestätiger
                        2. 0
                          Rolf B
                          1. 0
                            Raketenwissenschaftler
                            1. 4
                              Tabellenkalk
                          2. 0
                            Der Martin
                            1. -2
                              Raketenwilli
                              1. 0
                                Martl
                                • menschelei
              2. 0
                Frank
              3. 0

                Mail? Wirklich?

                Raketeneinwandfinder
      3. 0
        TS
    2. 0
      TS
      • logik
      • php
      • programmiertechnik
  2. 0
    Rolf B
    1. 0
      Der Martin
      1. 0
        oxo888oxo