Tom: php.ini

Beitrag lesen

Hello,

alles klar, das kann ich nachvollziehen, aber warum funktioniert mein script bei meinem provider, und warum ist deine variante (reg...glo..= Off) besser als meine, bedeuten sie doch mehr code im script? ( sicherheit? )

Na stell Dir mal vor, Du hättest eine Schleife in Deinem Script mit einem Zähler

while ($i < 100)
{
  ...
  $i++;
}

und Du hast "schmutzig" programmiert, also keine Initialisierung von $i vor der Schleife vorgenommen. Da $i beim ersten Mal nicht existiert wird es von PHP mit false oder 0 angenommen. Das ist kleiner als 100 und die Schleife funktioniert. Durch das $i++ wird dann eine Instanz von i angelegt und existiert im Weiteren.

Wenn nun jemand Dein Script aufruft mit

http://domain/scriptname.php?i=40

dann würde bei register_globals = on die Variable $i im Script mit dem Wert 40 instanziiert werden und die Schleife würde nur noch 60 Mal laufen statt 100.

Sicher ist dieses Beispiel etwas vereinfacht und hergesucht. Es soll ja auch nur die mögliche Lücke verdeutlichen.

Grüße

Tom