Sascha Knappe: Ist putenv("register_globals = off") verhinderbar?

Hallo,

ich möchte in einem Script per putenv("register_globals = off") verhindern, das sich $_POST, $_GET, $_SESSION und Variablen mit gleichem Namen gegenseitig überschreiben, falls in der php.ini des Hosters (leider vom Mieter des Webspace nicht veränderbar) register_globals auf on steht.

Geht das überhaupt und ist es in irgendeiner Weise vom Hoster verhinderbar, dass man das über die Umgebungsvarieble von on auf off stellt.

Vielen Dank für eure Mühe

die Knappschaft

  1. Hallo Sascha,

    putenv("register_globals = off")

    register_globals ist keine Umgebungsvariable sondern eine Einstellung von PHP.

    [Ich will] verhindern, das sich $_POST, $_GET, $_SESSION und Variablen mit gleichem Namen gegenseitig überschreiben, falls in der php.ini des Hosters register_globals auf on steht

    Naja, da du sowieso immer mit $_* arbeitest ist es doch egal, ob sich von dir nicht verwendete (oder von dir überschriebene) Variabeln gegenseitig überschreiben.

    Geht das überhaupt und ist es in irgendeiner Weise vom Hoster verhinderbar, dass man das über die Umgebungsvarieble von on auf off stellt.

    Es ist wie gesagt eine Konfigurationseinstellung. Du kannst sie per ini_set() (http://php3.de/ini-set) ändern (ggf. auch nicht, aber das steht alles auf dieser Seite).

    Grüße
      David

    --
    >>Nobody will ever need more than 640k RAM!<<
    1981 Bill Gates
  2. Moin!

    ich möchte in einem Script per putenv("register_globals = off") verhindern, das sich $_POST, $_GET, $_SESSION und Variablen mit gleichem Namen gegenseitig überschreiben, falls in der php.ini des Hosters (leider vom Mieter des Webspace nicht veränderbar) register_globals auf on steht.

    Das kann nicht funktionieren. putenv() wird ja erst aufgerufen, wenn das Skript schon gestartet ist - zu diesem Zeitpunkt ist der "Schaden" von register_globals schon "angerichtet".

    Geht das überhaupt und ist es in irgendeiner Weise vom Hoster verhinderbar, dass man das über die Umgebungsvarieble von on auf off stellt.

    Ja, verhinderbar ist es in jedem Falle.

    Deine einzige Chance ist es, eine .htaccess-Datei zu bemühen.

    Alternativ solltest du ordentlich programmieren. Da die globalen Variablen ("$name" und so) ja vor Beginn des Skriptes nicht benutzt werden, solltest du ALLE Variablen, die du im Laufe des Skriptes benutzt, immer mit definierten Werten initialisieren. Auf diese Weise kann dir die mögliche "Vorbelegung" durch register_globals vollkommen egal sein.

    - Sven Rautenberg

  3. Hallo Sven, hallo David,

    vielen Dank für eure Antworten.

    Schöne Grüße aus München

    die Knappschaft