ini_set('session.save_path','/../tmp');
session_start();
$_SESSION['session_id'] = session_id();
print "sess-id:".$_SESSION['session_id']." <br>";
session_unset();
session_destroy();
exit;
es wird bei jedem Aufruf dieses Skriptes immer wieder die gleiche
SessionID erzeugt.
Das sollte doch wohl nicht so sein, oder?!?
thanx for your help, Helmut
> Hallo NG,
> wenn ich eine PHP-Session erzeuge, selbige zerst�re und dann wieder
> eine
> neue Session erzeuge,
> kommt immer dieselbe SessionID heraus.
> in meinem Testscript
> ist folgender Code:
>
> ini_set('session.save_path','/../tmp');
> session_start();
> $_SESSION['session_id'] = session_id();
> print "sess-id:".$_SESSION['session_id']." <br>";
> session_unset();
> session_destroy();
> exit;
>
> es wird bei jedem Aufruf dieses Skriptes immer wieder die gleiche
> SessionID erzeugt.
> Das sollte doch wohl nicht so sein, oder?!?
Nein, es wird nicht immer die gleiche erzeugt, sondern es wurde initial
eine ID erzeugt, in einen Cookie gepackt und den sendest du jetzt bei
jedem Aufruf mit: siehe
http://docs.php.net/manual/en/function.session-destroy.php
KP
> Nein, es wird nicht immer die gleiche erzeugt, sondern es wurde initial
> eine ID erzeugt, in einen Cookie gepackt und den sendest du jetzt bei
> jedem Aufruf mit: siehehttp://docs.php.net/manual/en/function.session-destroy.php
Hallo Karl,
Wenn die cookies automatisch gesetzt werden, sollte man meinen, dass
sie bei session_destroy auch automatisch gelöscht werden?!?
Helmut
> Nein, es wird nicht immer die gleiche erzeugt, sondern es wurde initial
> eine ID erzeugt, in einen Cookie gepackt und den sendest du jetzt bei
> jedem Aufruf mit: siehehttp://docs.php.net/manual/en/function.session-destroy.php
habe jetzt am Sessionende zusätzlich zum session_destroy noch
eingefügt:
setcookie(session_name(),session_id(),0,$sess_save_path);
...und trotzdem ist das nächste *neue* cookie wieder ein altes?!?
Helmut Blass schrieb:
> Wenn die cookies automatisch gesetzt werden, sollte man meinen, dass
> sie bei session_destroy auch automatisch gel�scht werden?!?
Hallo Helmut,
nein, wie sich Cookies verhalten, kannst du mit PHP nicht beeinflussen,
da sie clientseitig abgelegt werden. Man kann aber die Cookies auf einen
G�ltigkeitswert in der Vergangenheit setzen, damit sie als abgelaufen
gelten. Sicher zerst�rt sind sie dadurch aber nicht.
Nur so am Rande,
Sebastian
> On 5 Nov., 16:12, k...@rl.pflaesterer.de (Karl Pfl�sterer) wrote:
>
>> Nein, es wird nicht immer die gleiche erzeugt, sondern es wurde initial
>> eine ID erzeugt, in einen Cookie gepackt und den sendest du jetzt bei
>> jedem Aufruf mit: siehehttp://docs.php.net/manual/en/function.session-destroy.php
>
> Hallo Karl,
> Wenn die cookies automatisch gesetzt werden, sollte man meinen, dass
> sie bei session_destroy auch automatisch gel�scht werden?!?
Nun ist es aber ganz klar anders dokumentiert. Was ist, wenn du keine
Cookies nutzt, sondern die Session-ID als Parameter �bergibst? Dann kann
man nichts l�schen (Cookie l�schen ist ja auch eigentlich falsch. Du
sagst dem Browser ja nur, dass der Cookie nicht mehr g�ltig ist. Ob er
dies umsetzt ist eine andere Frage).
KP
> Nun ist es aber ganz klar anders dokumentiert. Was ist, wenn du keine
> Cookies nutzt, sondern die Session-ID als Parameter übergibst?
Man kann die ganze Geschichte natürlich auch ohne cookies rein über
die $_SESSION-Variable abfackeln. Allerdings wird die Session-Id dann
immer mit der URL weitergereicht, was gewisse Sicherheitsprobleme
aufwirft.
Ist dann schon eine Frage der prinzipiellen Vorgehensweise...
Helmut Blass schrieb am 05.11.2009 in de.comp.lang.php.misc:
> setcookie(session_name(),session_id(),0,$sess_save_path);
> ...und trotzdem ist das n�chste *neue* cookie wieder ein altes?!?
Ich habe nach einigem Probieren in meinen Projekten folgende Reihenfolge
zum Erzeugen einer neuen Session (verk�rzt):
$C = session_get_cookie_params();
if (empty($C['domain']) AND empty($C['secure'])) {
setCookie(session_name(), session_id(), 1, $C['path']);
} elseif (empty($C['secure'])) {
setCookie(session_name(), session_id(), 1, $C['path'], $C['domain']);
} else {
setCookie(session_name(), session_id(), 1, $C['path'], $C['domain'],
$C['secure']);
}
session_write_close();
session_destroy()
session_name('YourName'); // optional, aber wenn, dann VOR
session_start()
session_start();
// to overcome/fix a bug in IE 6.x
Header('Cache-control: private');
// from http://php.net/manual/function.session-regenerate-id.php
// UCN from Gant at BleachEatingFreaks dot com, 24-Jan-2006 09:57
if (version_compare(PHP_VERSION, '4.3.3', '<')) {
setCookie( session_name(), session_id(),
ini_get('session.cookie_lifetime'));
}
Knut
--
http://es-f.com
Web frontend for esniper, the console application for sniping eBay auctions.