In der aktuellen PHP-Version (4.2.0) ist ja register_globals standardmässig deaktiviert.
Wenn ich meine Seite jetzt bei einem Provider liegen habe, wird sie ja nicht mehr funktionieren, sofern er den Schlüssel in der php.ini nicht ändert. Habe ich sonst irgendwelche Möglichkeiten "anständig" mit Formularen und Sessions zu arbeiten?
Natürlich. Sämtliche Daten, die mit register_globals als eigene Variablen erscheinen, stehen seit Urzeiten auch in Feldern wie zum Beispiel $HTTP_SERVER_VARS[]. Bei diesen Feldern hat sich nichts AFAIK geändert.
Die Einzelvariablen haben immerwieder eine Sicherheitslücke dargestellt, da man sie auch einfach über die URL erzeugen und dem Skript damit Dinge vorgaukeln kann, die nicht stimmen (einen eingelogten Nutzer zum Beispiel mittels nutzerbereich.php?authenticated=true), deswegen wurden die Dinger quasi rausgeschmissen.
Als einfacher zu benutzenden Ersatz sowohl für die Einzelvariablen als auch für die Felder à la $HTTP_SERVER_VARS sind Felder dazugekommen, die IIRC mit _ anfangen und global gültig sind (also ohne zutun auch innerhalb von Funktionen).
Die einzelnen Namen hab ich jetzt vergessen, aber als versierter PHP-Programmierer wirst Du die sicher selbst herausfinden können ;)
Falls Deine Skripte nicht das oben beschriebene Problem nicht-initalisierter Variablen aufweisen und Du nicht alles ändern willst, solltest Du auch in der.htaccess register_globals auf true setzen können. Wie genau, steht in der PHP-Anleitung, Kapitel Konfiguration (wer hätte das gedacht:).
Gruß,
soenk.e