Sessions! |
Elliot
Fachidiot Threadstarter
Beiträge: 135 |
Hallo!
Meine Seite ist komplett über eine index-Datei aufgebaut.
In dieser steht als erstes:
session_start();
session_register ("a","b","b");
Beim zweiten Aufruf bräuchte er "session_register" ja eigentlich nicht mehr aufrufen.
Meine Fragen:
a) Ist es egal, ob er session_register zwei oder mehrmals aufruft.
b) Wie kann ich überprüfen, ob schon eine session gestartet wurde und dann nur session_start aufrufen?
Danke für die Hilfe.
Gruß, Elliot
---
Elliot - Das Schmunzelmonster
|
 Profil
Website
Editieren
Zitieren
|
Waschbecken
Quasselstrippe
Beiträge: 288 |
ich kann nur mit symbolischen vbcode dienen, aber das prinzip sollte das gleiche sein
if session = false then
end if
|
 Profil
Website
Editieren
Zitieren
|
Elliot
Fachidiot Threadstarter
Beiträge: 135 |
Danke, aber den Befehl "session" gibt es so in PHP nicht, oder?
---
Elliot - Das Schmunzelmonster
|
 Profil
Website
Editieren
Zitieren
|
m3rlin
Quasselstrippe
Beiträge: 264 |
session_register kannst Du so oft hintereinander aufrufen wie Du willst. Da passiert nix. Der Wert der Variablen bleibt erhalten.
Wenn Du überprüfen willst, ob bereits ein Session gestartet wurde, musst Du uberprüfen, ob ein SESSION-ID existiert.
Wenn dir session_id(); nen Wert zurückgibt, dann existiert eine Session, wenn nicht dann nicht.
---
Webspace Preisvergleich Server Preisvergleich
|
 Profil
Editieren
Zitieren
|
Waschbecken
Quasselstrippe
Beiträge: 288 |
der begriff existiert so in asp respektive vbs auch nicht - sollte ja auch nur das prinzip verdeutlichen
|
 Profil
Website
Editieren
Zitieren
|
Waschbecken
Quasselstrippe
Beiträge: 288 |
|
 Profil
Website
Editieren
Zitieren
|
Elliot
Fachidiot Threadstarter
Beiträge: 135 |
Danke!
Das Manual hatte ich vorher schon gelesen, hatte aber nicht realisiert, das man es mit der session_id() überprüfen kann.
Jetzt ist nur noch die Frage:
Lohnt es sich zu überprüfen, ob schon eine Session existiert oder ist es wirklich egal, ob man immer wieder session_register() aufruft. Ich meine jetzt hinsichtlich der Ausführungsgeschwindigkeit und des Speicherverbrauchs.
---
Elliot - Das Schmunzelmonster
|
 Profil
Website
Editieren
Zitieren
|
Waschbecken
Quasselstrippe
Beiträge: 288 |
ich bin kein meister in sachen php, aber grundsätzlich dürfte doch session_register() jedes mal aufs neue rechenleistung beanspruchen, ist schließlich ein prozess der ausgeführt werden muss.
und je umfangreicher das alles wird desto mehr drückt es natürlich auf den speed.
|
 Profil
Website
Editieren
Zitieren
|
m3rlin
Quasselstrippe
Beiträge: 264 |
session_id() ist auch ne Funktion und in eine if-Anweisung verpackt, erzeugt das ganze bestimmt genauso viel Systemlast wie session_register().
Ich denke einen Unterschied in der Ausführungsgeschwindigkeit wirst du erst bei sehr vielen zeitgleichen Zugriffen merken. Und erst dann lohnt es sich auch über Performance-Optimierungen nachzudenken.
---
Webspace Preisvergleich Server Preisvergleich
|
 Profil
Editieren
Zitieren
|
subjective
Forenheld
Beiträge: 844 |
session_register trägt den entsprechenden Variablennamen in eine interne Liste ein - mehr nicht. Das geht extrem schnell. Dopplungen werden ignoriert (und nicht noch einmal eingetragen).
Mit session_id() kann man NICHT testen, ob eine Session existiert, sondern nur ob eine Session-ID an das Script übergeben wurde. Die zugehörige Session kann verfallen sein. Über session_id() kann die Session-ID auch vor dem Start der Session geändert werden.
Thomas
---
Weaverslave
|
 Profil
Website
Editieren
Zitieren
|
m3rlin
Quasselstrippe
Beiträge: 264 |
Und wie überprüfe ich dann, ob die Session, die zur session_id gehört, noch valid ist?
---
Webspace Preisvergleich Server Preisvergleich
|
 Profil
Editieren
Zitieren
|
Elliot
Fachidiot Threadstarter
Beiträge: 135 |
Hallo!
Das hört sich auf jeden Fall gut an! Dann kann ich session_register() ja ruhig immer aufrufen, was ja auch automatisch passiert, wenn ich nur über eine Datei arbeite.
Danke.
Gruß, Elliot
PS: Die andere Frage ist aber auch immernoch interessant, wie man überprüft, ob eine Session exxistiert.
---
Elliot - Das Schmunzelmonster
|
 Profil
Website
Editieren
Zitieren
|
subjective
Forenheld
Beiträge: 844 |
Nicht wirklich, was wollt ihr mit dem Wissen anfangen. session_start() müßt ihr in beiden Fällen aufrufen. Die Daten in der Session sind zwar vertrauswürdiger als Formulardaten, bevor ich sie verarbeite, würde ich sie trotzdem prüfen.
Man könnte je nach Session-Handler die Datei suchen oder den Datensatz. Aber wie gesagt eigentlich ist der Wert unwichtig.
Thomas
---
Weaverslave
|
 Profil
Website
Editieren
Zitieren
|
Elliot
Fachidiot Threadstarter
Beiträge: 135 |
Muss ich wirklich session_start() aufrufen, wenn ich doch immer session_register() aufrufe. (Zumindestens solange es diese eine index-Datei betrifft.)
Wenn ich folgendes richtig interpretiere:
"session_register()
Eine oder mehrere Variablen zur Speicherung in die Session(datei) vormerken. session_register() impliziert ein session_start() . Das bedeutet, daß man session_start() in diesem Fall auch weglassen könnte. Bei den Parametern der session_register() Funktion handelt es sich nicht um die Variablen selbst, sondern um ihre Namen. Diese Parameter besitzen kein führendes " $ ". "
entnommen: http://www.koehntopp.de/php/version4_session.html#sessions-wie
dann bräuchte ich den session_start() doch nicht aufrufen, dann müsste session_register() doch reichen, oder?
---
Elliot - Das Schmunzelmonster
|
 Profil
Website
Editieren
Zitieren
|
subjective
Forenheld
Beiträge: 844 |
session_register(), ruft intern session_start() auf, wenn dies noch nicht manuell geschehen ist.
---
Weaverslave
|
 Profil
Website
Editieren
Zitieren
|