Moin!
register_globals sollte in der php.ini auf TRUE gesetzt werden.
Nein, das sollte schön brav auf FALSE gesetzt bleiben.
Soweit ich weiß übernimmt php damit die Variablen von Seite zu Seite. Ist die Funktion deaktiviert musst du die Variable eigehändig an jeden Link anhängen.
Nein, register_globals hat was mit dem Erzeugen globaler Variablen aus diversen externen Quellen zu tun - und genau deshalb ist es auch schlecht, weil ein Angreifer auf diese Weise beliebige globale Variablen erzeugen kann, und ein schlecht programmiertes Skript so zu Fehlverhalten animiert werden kann.
Je nachdem wo du das Script laufen hast wirst du auch auf unterschiedliche Konfigurationen treffen. Ich hatte den Fall das auf meinem localhost die Konfig so eingestellt war das er Variablen automatisch übertragen hat. Beim Kunden dann auf den Webspace aufgespielt ging das nicht mehr --> schöne Arbeit !! Solltest du auf jeden Fall berücksichtigen.
Es ist kein Problem, mit register_globals=false zu programmieren, auch wenn auf dem entgültigen Host register_globals erstmal eingeschaltet sind. Umgekehrt hat man ein großes Problem. Selber schuld, würde ich sagen.
Ansonsten wäre es keine schlechte Idee, die Einstellungen auf dem Zielhost mit phpinfo() auszulesen und auf dem Entwicklungsrechner identisch einzustellen.
- Sven Rautenberg