Mailinglisten-Archive |
Hallo Marco, Marco Seimer schrieb: > $gnorf=0; > <a href="bla.php?gnorf=30">weiter</a> > > Wenn bla.php wieder aufgerufen wird, ist $gnorf auch 30, aber sobald > session_start() aufgerufen wird, wird auch $gnorf mit dem alten wert > überschrieben. Dabei soll $gnorf, den Wert in der Session > überschreiben. > > Ich glaube ich habe sessions einfach falsch bis garnicht verstanden :( > Ja - scheint fast so - als solltest du mal kurz auf Abstand gehen - und mal drüber schlafen. Sessionvariablen sind sowas wie "globale" Variablen über all deine Scripte, die zur Session gehören. Was du in der URL (per GET) übergibst ist eine "scriptlokale" Variable. Beim Aufruf des Scriptes wird die Varibale $gnorf von PHP erzeigt und auf den Wert 30 gesetzt. Startest du jetzt im Script die Session heißt das soviel wie: Ab jetzt gelten alle in der Session registrierten "globalen" Variablen. Dabei geht dir die "lokale" Variable $gnorf verloren und wird durch die "globale" ersetzt - die natürlich den alten Wert hat. Also - falls du den Wert von $gnorf noch anderweitig in der Session brauchst (ohne Übergabe per URL) würde ich dir vorschlagen in der URL nur die Differenz (in einer anderen Variable!) mitzugeben und nach dem Starten der Session einfach auf $gnorf zu addieren. Brauchst du $gnorf nur in dem hier beschriebenen Sinne (als Startpunkt für deine Abfragen) dann reicht eigentlich die Übergabe per URL und du brauchst es gar nicht in der Session mitzuschleifen. hoffe es wurde klarer. MfG Thorsten P.S: Vielleicht noch zum besseren Verstehen - eine Übersicht der Wege Variablen von Script zu Script zu geben (keine Garantie auf vollständigkeit): - HTTP-GET: Die Variable einfach hinter einem ? an die URL der Scripts hängen (http://meinscript.php?TestVar=1) Im Script wird dann eine Variable $TestVar erzeugt die den Wert 1 zugewiesen bekommt. - Übergabe per hidden-Feld: Man kann in einem Formular ein hidden-Feld einfügen und dort den value passend setzen. Der Wert taucht dann beim Ziel-Script des Formulars in einer Variable mit dem Namen des hidden-Felds wieder auf - Sessions: Registiriere eine Variable in einer Session. Startet ein späteres Script wieder die Session, so hat es Zugriff auf alle in der Session registrierten Variablen. Dabei wird von Script zu Script nur die Session ID übergeben (durch Cookies oder HTTP-GET). Die Variablen bleiben auf der Serverseite -- this mail was presented by ___________________________________________________ T h o r s t e n G e b u h r ___ thorsten_(at)_enabled.de _ http://www.enabled.de ___
php::bar PHP Wiki - Listenarchive