hilfdirselbst.ch
Facebook Twitter gamper-media
diana wagner
Beiträge: 4
15. Jun 2003, 10:48
Beitrag #1 von 3
Bewertung:
(415 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Session variablen funktionieren nicht richtig


hallo ihr,
ich habe ein problem mit sessions.

folgendes skript funktioniert nicht:

session_start();
if (!session_is_registered("auftrag_nr"))
{
.. Abfrage auf DB ausführen; letzte auftrag_nr rausfinden;
session_register("auftrag_nr");
zähle auftrag_nr eins hoch;
insert in DB mit nächster auftrag_nr;
...

}
else
{
$auftrag_nr = $_SESSION["auftrag_nr"];
update der position in DB mit "alter" auftrag_nr;
...
}

Beim ersten Aufruf ist noch alles ok. Beim zweiten Aufruf müßte allerdings die bereits existierende Sessionid erkannt werden und in den else-Zweig gesprungen werden.
Das ist leider nicht so, bei jedem aufruf wird immer eine neue sessionid angelegt.

Wenn ich allerdings das folgende skript zuerst aufrufe, dann klappt mein oberes skript, so wie es sein müßte:

if (!session_is_registered("count"))
{
session_register("count");
session_register("start");

$_SESSION["count"] = 0;
$_SESSION["start"] = time();
}
else
{
$_SESSION["count"]++;
}

$sessionId = session_id();
-------------------------------------------------
und danach wird die aktuelle session wieder zerstört mit......
<?php
// Only attempt to end the session if there
// is a $_COOKIE["PHPSESSID"] set by the request.
if($_COOKIE["PHPSESSID"])
{
$message = "<p>End of session {$_COOKIE["PHPSESSID"]}";
session_start();
session_destroy();
} else
{
$message = "<p>There was no session to destroy!";
}
?>

Kann mir das jemand erklären?
Wie kriege ich mein skript zum laufen ohne dass ich erst eine dummy-session aufbaue und dann wieder zerstöre??

Gruß
Diana





Top
 
X
hmaus  M 
Beiträge: 692
19. Jun 2003, 13:52
Beitrag #2 von 3
Beitrag ID: #40195
Bewertung:
(415 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Session variablen funktionieren nicht richtig


Hallo Diana,

hast Du mal in der aktuelle PHP-Doku den Abschnitt mit den Sessions gelesen?

Dort steht u.a., dass wenn Du $_SESSION als Super-Globale verwendest zum Beispuel die Existenz mit isset() prüfen solltest.

Wie es scheint ist Du den Umbruch bei der Verwendung von globalen variablen in PHP einiges im Argen. Vermutlich darf man "alte" und neue Funktionen nicht mischen.

Viel Glück,

Helge

--
Web- & Multimedia-Development * ADOBE Software Training
http://www.iPartner.de
als Antwort auf: [#39547] Top
 
Anonym
Beiträge: 22827
21. Jul 2003, 22:03
Beitrag #3 von 3
Beitrag ID: #44545
Bewertung:
(415 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Session variablen funktionieren nicht richtig


hallo,

vielleicht hilft ja ein blick auf die von dir eingesetzte php-version.

genau das problemchen hatte ich auch. bei php 4.0.6 ist die implementierung der session-variable noch fehlerhaft. mit php 4.2.2 hatte ich keine probleme mehr.

wann die session-variablen das erste mal wirklich funktionierten, kann ich dir nicht sagen. irgendwann zwischen 4.0.6 und 4.2.2 gings dann halt.

vielleicht hat das noch geholfen. wenn nicht dir, dann vielleicht einem anderen.

jonas
als Antwort auf: [#39547] Top