register_globals = off
Bernd
- php
Hallo!
Ich habe ein kleines Problemchen... Ich habe meinen neuen Webshop habe auf register_globals = off programmiert. Nur komischerweise läuft der auf dem Webserver meines Hosters nicht richtig. Da der den Server auf "on" stehen hat! Das heißt das Session Login läuft nicht? Erst habe ich Online am Script was verändert aber ohne Erfolg. Anschliessend habe ich meine Linux Kiste auch auf register_globals = on gestellt und siehe da es funktioniert auch da nicht mehr!? Ich habe es so verstanden wenn man auf register_globals=off programmiert dann funktioniert auch register_globals=on aber das stimmt ja nicht sonst würde es ja funktionieren...
Ich wollte den Shop nur schon einmal installieren damit der Kunde schon mal was zusehen bekommt. Der Server des Kunden wird auf register_globals "off" eingetsellt sein.
Mir hat mal jemand gesagt man könnte zur Laufzeit die php.ini Datei umschreiben. Das heißt wenn das funktioniert müsste ich zur Laufzeit resgister_globals auf off setzen! Aber ich wüßte gar nicht wie ich das machen soll?
Kann mir jemand dabei helfen oder Tipps geben?
Danke!
Bernd
habe d'ehre
Ich habe ein kleines Problemchen... Ich habe meinen neuen Webshop habe auf register_globals = off programmiert. Nur komischerweise läuft der auf dem Webserver meines Hosters nicht richtig. Da der den Server auf "on" stehen hat!
Dann wuerde ich schleunigst Deinen Provider darauf draengen eine aktualisierte PHP-Version zu installieren. Wenn nicht moeglich, Provider wechseln. Alles andere waere Mumpitz.
carpe diem
Wilhelm
Hi,
nur so als Hinweis, wir hatten das Problem auch mal, bis wir uns zu einem anderen Benennungskonzept entschieden haben. Die Sache ist ja die, wenn du mit globals=off arbeitest, dann gehst du davon aus, dass du von außen keine Variablen in dein Skript reinbekommst, das heißt du machst ruhigen Gewissens
$login = false;
...
if ($login) ...
(so als Beispiel).
Wenn du jetzt aber in einer globals=on-Umgebung bist, dann könnte eine externe Variable dir deine interne Variable überschreiben. Bei uns war es konkret das Problem, dass eine lokale/Session-Variable genau so hieß wie ein Formulareintrag, der aber einen anderen Eintrag hatte. Somit haben wir ständig unseren Wert verloren und ca. 1 Tag DEBUG-Zeit gebraucht um das rauszufinden.
Also vielleicht untersuchst du, neben allen Maßnahmen in Bezug auf Umkonfigurierung des Servers, mal deine Skript, ob du dir vielleicht mit externen Variablen was zerschießt.
MfG
Rouven
lokale/Session-Variable genau so hieß wie ein Formulareintrag,
der aber einen anderen Eintrag hatte. Somit haben wir ständig
unseren Wert verloren und ca. 1 Tag DEBUG-Zeit gebraucht um
das rauszufinden.
Ja das habe ich auch gemacht! :)
Mein Hoster hat eine aktuelle PHP Version drauf. Aber was ich nicht wußte er kann register_globals=off auch auf virtual host eben setzen dazu muss nicht der ganze server auf off gesetzt werden.
register_globals=on hat er nur stehen weil viele seiner kunden nur solche scripte am laufen haben. einfach auf off stellen kann er auch nicht sonst werden die kunden ärgerlich weil nichts mehr geht ;-)
nun läuft es auch wieder aber das mit den session-variablen werde ich nun in einem zug auch noch ändern dann läuft es auch wirklich auf allen servern.
und das mit dem 1 tag debug-zeit kann ich mir gut vorstellen, da man auf sowas erst gar nicht kommt, sieht ja auch alles richtig aus ;-)
gruss bernd
Hello,
$login = false;
...
if ($login) ...
(so als Beispiel).
Das kann nicht mehr passieren, wenn man einen "Constructor" schreibt, der nach dem Scriptstart alle Variablen, die das Script benötigt, initialisiert.
Da bewahrheitet sich dann mal wieder, dass implizite Variablendeklaration der größte Sch... ist.
Liebe Grüße aus http://www.braunschweig.de
Tom