Hallo Markus,
Tuesday, July 22, 2003, 10:19:22 AM, you wrote:
MH ich will folgendes:
MH Der Client soll ein cookie bekommen:
MH darin soll die session_id, lifetime, domain, und ein counter
MH gespeichert sein.
MH Diese Daten soll der Benutzer auf der ersten Seite vor dem ausfüllen
MH eines Forms bekommen.
-- form.php :
MH in etwa so
MH ?PHP
MH ini_alter(session.use_cookies,1);
MH ini_alter(session.cookie_lifetime,31536000);
MH ini_alter(session.use_trans_sid,1);
MH ini_alter(session.cookie_domain,www.wetterbote.de);
MH $time = mktime()+31536000;
MH session_start();
MH session_register(time,SessionID);
MH $SessionID=session_id();
MH session_set_cookie_params(31536000,/tmp,$time );
MH session_set_cookie_params(int lifetime [, string path [, string
MH ...
MH nach dem ausfüllen des Forms werden die Daten
MH Submited und mit $_POST nach danke.php übergeben,
MH und in eine mySQL Datenbank geschrieben.
MH Im Augenblick bekomme ich nur
MH lifetime: 0
MH path: /
MH domain:
MH secure:
MH bzw nur die SessionID zurück.
MH in die Tabelle mysite_access_tbl sollte
MH nun auch die cookie vars geschrieben werden
MH anstatt auf /tmp zu landen.
MH Als erstes will ich dann testen ob der Benutzer
MH bekannt ist und innerhalb der letzten x Sekunden schon mal was hier abgesendet
MH hat.(was wiederum einfach ist wenn ich das mit den cookies geschnallt habe)
MH Sinnvoll fände ich auch, dass der Benutzer bei weiteren Besuch
MH den alten Cookie überschrieben bekommt, oder ist
MH das Standard?
MH Grüße Markus
Also um ganz ehrlich zu sein, wozu willst du die Sessionhash bitte als Cookie
versenden? Mach es per trans_sid und gut ist! Dann hast du auch keine Probleme mit
Clients die überhaupt keine Cookies akzeptieren, was eine ganze Menge ist!
Und wie ich schon in meiner vorherigen Mail geschrieben habe, machst du dir das hier
ziemlich schwer! Man kann die Werte der Session direkt in dem Array schreiben
$_SESSION['key'] = value . Da muss man nix definieren oder sonst was, es spart Zeit
und nerven! Vorher sollte man aber, wenn es noch nicht geschehen ist,
session_start() ausführen! Ich habe in meinen PHP Programmen immer ein ob_start()
als ersten Befehl, da ob_start den kompletten output dann buffert und Cookies und
der gleichen immer noch oben in den Header setzt, egal wann und wo du die Cookies in
deinem Code setzt!
Außerdem brauchst du dich nicht um die Session-ID zu kümmern, da diese automatisch
generiert und ebenso automatisch zugewiesen wird! Das heißt du hast nach deinem
Dateiwechsel einfach alle Variablen verfügbar - fertig! Das heißt ich würde wenn
überhaupt nur den Counter als Cookie absetzen und den Rest per Session über trans_sid
( Also als Anhang an der Datei ) verwalten. Außerdem würde ich auch nichts an der
Lifetime der Session ändern, da es unsinnig ist, meiner Meinung nach, eine Session
länger als 15 Minuten ohne Aktivität gültig zu halten.
Das würde so aussehen, als Beispiel:
?php
ob_start();
session_start();
$_SESSION['var1'] = value1;
$_SESSION['var2'] = value2;
[...] restlicher Code
?
--
Best regards,
Saschamailto:[EMAIL PROTECTED]
smime.p7s
Description: S/MIME Cryptographic Signature