nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Re: Links in Bestätigungsmail

Von: Joerg Behrens (behrens@takenet.de) [Profil]
Datum: 11.06.2008 08:37
Message-ID: <6b9a51F2od9djU1@mid.individual.net>
Newsgroup: de.comp.lang.php.misc
Heiko Warnken schrieb:
> Hallo,
> ich stehe im Moment ziemlich auf dem Schlauch.
> Folgendes Szenario:
> Ein Besucher der Webseite klickt auf "Registrieren", um sich neu zu 
> registrieren.
> Nach Eingabe (und Prüfung) der eingegebenen Daten erhält er eine e-
Mail.
> In dieser e-Mail befindet sich ein Link, den er anklicken soll, um sein
e
> Regsitrierung zu bestätigen.
> An den Link angehängt ist die session_id seiner Sitzung.
> z. B.: www.testdomain.de/register/best.php?id=session_id

Normal wird hier nicht die Session genommen sondern ein anderer Hash
welcher eine definierte Laufzeit hat. Deine Session hat nur eine
begrenze Laufzeit.

Siehe weiter unten.

> Bis hier her ist alles Ok. Doch nun kommt mein Problem:
> 
> Wird eben dieser Link angeklickt, wird zwar die session_id mit 
> übertragen (an den Browser), doch dieser kann aus einem mir nicht 
> bekannten Grund keinerlei Daten aus der Session finden. Alle 
> $_SESSION[''] Variablen sind leer.
> 
> Anmerkung:
> Wenn der Browser geöffnet bleibt und der Link in der Mail angeklickt 

> wird, funktioniert alles tadellos. Erst, wenn der Browser (IE oder 
> Mozilla!) geschlossen werden, sind die Session-Daten futsch.

Das ist aber auch logisch. Die Sessions in PHP basieren auf
Sessioncookies welche nur im Browser solange leben, wie dieser geoeffnet

ist. Normal wird hier auch keine cookie Datei auf Platte abgelegt beim
Anwender. Solange der User auf deiner Seite rumklickt akt. sich die
Session und PHP verlaengert die Laufzeit entsprechend seinen Einstellunge
n.

1. Entweder oben einen anderen Hash nehmen welcher als Key zusammen mit
einem Usernamen (oder 2. Hash) in eine extra Tabelle gucken wo die
zuaktivierenden Accounts liegen.

2. Gucken ob PHP von Sessioncookies auf normale Cookies umgestellt
werden kann was ext/session angeht. Wenn nicht ein anderes
Sessionmanagement nehmen und hier Cookies mit definiertem Ende angeben
(das ist dann kein Sessioncookie fuer den Browser).

Gruss
Joerg

--
TakeNet GmbH,                    Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg                  Tel: +49 931 903-2243
Alfred-Nobel-Straße 20           Fax: +49 931 903-3025
HRB Wuerzburg 6940               http://www.takenet.de

[ Auf dieses Posting antworten ]