Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Sessions! Antworten
Sessions!

Elliot
Fachidiot


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: 290


ich kann nur mit symbolischen vbcode dienen, aber das prinzip sollte das gleiche sein

if session = false then
<fülle session>
end if

  Profil   Website   Editieren   Zitieren

Elliot
Fachidiot


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: 290


der begriff existiert so in asp respektive vbs auch nicht - sollte ja auch nur das prinzip verdeutlichen <IMG SRC="/phpBB/images/smiles/icon_wink.gif">

  Profil   Website   Editieren   Zitieren

Waschbecken
Quasselstrippe


Beiträge: 290



  Profil   Website   Editieren   Zitieren

Elliot
Fachidiot


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: 290


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: 848


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


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: 848


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


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: 848


session_register(), ruft intern session_start() auf, wenn dies noch nicht manuell geschehen ist.




---
Weaverslave

  Profil   Website   Editieren   Zitieren
 

Antworten
Nach oben