Hallo Gerald, hallo Leute, Am Donnerstag, 20. November 2003 09:28 schrieb Gerald Engl:
Hallo Christian
Christian Boltz wrote:
Hallo Gerald, hallo Leute,
Am Mittwoch, 19. November 2003 12:44 schrieb Gerald Engl:
[diverse Config-Optionen für Apache2 & co, passt soweit]
In der /etc/php.ini ggf. :
register_globals = On
NEEEEEIIIIIIIIINNNNNNNNN!!!!!!!!!!!!!!
Aua, meine Ohren schmerzen. Du mußt nicht gleich schreien.
Sorry, aber das musste sein. Vor allem, da Du es ja so "grundsätzlich" empfohlen hast ;-)
Schreib Deine PHP-Scripte so, dass sie auf $_GET, $_POST usw. zugreifen. register_globals ist nicht ohne Grund seit einigen PHP-Versionen von Haus aus abgeschaltet - bei unsicher geschriebenen Scripten (nicht initialisierte Variablen) kann man sich einige Sicherheitsprobleme einhandeln!
Da hast Du recht; Das steht ja auch deutlich genug in der php.ini.
Ich denke, daß man es fürs _Testen_ durchaus vertreten kann,
Fürs Testen ist es vertretbar, soweit es darum geht, die grundsätzliche Funktionsfähigkeit eines (alten) Scripts zu sehen. Beachte aber bitte: Testen != Programmieren Sobald man irgendwas an den PHP-Scripten ändert, sollte register_globals wieder aus sein. Wem das Umschalten zu mühsam ist, der sollte u. g. verzeichnisspezifische Aktivierung verwenden. Als Verzeichnisname bietet sich dann $docroot/defekt an *g*
"register_globals" in der php.ini zu verwenden.
Oft genug tritt sonst folgender Fall auf: Alte Skripte laufen nicht, da die Variablen nicht initialisiert sind. Folglich wird stundenlang der Fehler in der Konfiguration von Apache gesucht.
Nö. Da findet sich direkt im Browser [1] eine ganze Latte Fehlermeldungen a la "Undefined Variable: xyz in test.php line 20". Bei entsprechender Config landen diese Meldungen auch im Errorlog (log_errors = on). Und schon sieht man, dass das alte Script noch unsauber ist ;-) Diese Gesprächigkeit ist übrigens einer der Vorteile von error_reporting = E_ALL - hatte ich in meiner gestrigen Mail ja auch geschrieben. Ach so, auf einem Produktivsystem sollte man display_errors = off setzen, damit _nur_ ins ErrorLog (s. o.) geschrieben wird und nicht in die Ausgabe, die der Browser bekommt.
Hinterher kann/sollte/muß man sich natürlich Gedanken machen, wie man die Sache "sauber ans laufen" bekommt.
Das auf jeden Fall - deshalb hab ich es gern von Anfang an sauber ;-) [2]
So, jetzt zum Problem "ich habe aber noch alte Scripte..." Man kann register_globals auch spezifisch für ein Verzeichnis aktivieren, wenn ein altes Script es unbedingt erfordert:
php_flag register_globals on </Directory> Die wesentlich bessere Lösung. ;-)
Die beste Lösung für das "ich habe aber noch alte Scripte..."-Problem ist übrigens Rattis PraktiScript: "He, Praktikant! Bis Montag müssen die Scripte mit register_globals = off sauber laufen!"
Das meinst Du nicht wirklich ernst.
Nö, nicht wirklich ;-) Irgendwie habe ich da einen dicken Smiley vergessen. Hier ist er: ;-)))))
Würde ein sehr schlechtes Licht auf deine Geisteshaltung werfen. Aua, Aua, Aua. ;-)
Wie gesagt: Ein wenig Spaß muss sein. Außerdem habe ich keinen Praktikant ;-)) und beruflich nix überhaupt nix mit Web-Programmierung zu tun. Gruß Christian Boltz [1] bei mir sogar deutlich sichtbar gelb hinterlegt - /etc/php.ini: error_prepend_string = "<span style='background-color:#ffff00;'>" error_append_string = "</span>" [2] Ich weiß, wovon ich rede, ich habe noch ein paar "Jugendsünden" zu überarbeiten. Hätte ich nur damals schon register_globals=off gehabt, es würde mir viel Arbeit ersparen. Naja, immerhin sind es überall die gleichen Variablen, da reicht eine include ;-) -- Und als nächste dürfen Querschnittgelähmte spammen, Blinde dürfen meinen Server aufmachen, und wer als Kind im Ostblock aufgewachsen ist darf HTML-Mails schreiben? Super. Ich hatte mal Mittelohrentzündung, das sollte reichen, um Outlook benutzen zu dürfen? [Ratti in suse-linux]