Moin!
ich hab das bis jetzt so gemacht wenn sich jemand einloggt:
session_start();
session_start() sendet den Cookie, bzw. wenn trans_sid eingeschaltet ist, wird die Session-ID auch automatisch an alle Links gehängt und in alle Formulare reingeschrieben, wenn beim Seitenaufruf die Session-ID nicht per Cookie gesendet wurde. Ohne trans_sid müßtest du das manuell an alle Links dranhängen. Benutze dazu die Konstante "SID": <a href="link?<?php echo SID; ?>">...
if (!session_is_registered('user'))
{
die "Du bist nicht eingeloggt";
}
Das prüft, ob in der Session die Variable 'user' registriert ist. Das hat mit dem Speichern von Cookies oder Session-IDs in der URL aber nichts zu tun.
Außerdem wäre es netter, anstatt das Skript abzubrechen, doch lieber einen Redirect auf die Login-Seite zu machen.
die ID wird doch in einem Cookie gepeichert oder? Aber nicht jeder Akzeptiert diese. Wäre es besser diese ID dem Link anzuhängen?
trans_sid ist ein toller Mechanismus: Er versucht auf jeden Fall, ein Cookie zu setzen, hängt aber vorsorglich die Session-ID auch an alle Links dran. Du brauchst dich im Prinzip um nichts zu kümmern.
Die Einstellung kann aber nur in der php.ini oder per .htaccess-Datei (sofern erlaubt) verändert werden. Du suchst dazu "session.use_trans_sid" (siehe auch http://www.php.net/manual/de/function.ini-set.php).
Habe auch einige mail formulare auf meiner seite. man brauch ja eigendlich nur immer die bestätigungsseite aktualisieren um diese vorherige mail nochmal zu schicken oder? also ist es leicht zu spamen. was kann ich dagegen machen??
Es ist nach meiner Erfahrung eine wirklich gute Idee, Formularverarbeitung zweizuteilen: Die Action des Formulars zeigt auf ein Skript, das die Arbeit macht. Und dann gibt dieses Skript einen Redirect (mit header()) aus, der auf eine Ergebnisseite leitet. Das _kann_ dasselbe Skript sein, das nur mit anderen Parametern aufgerufen wird, um den Erfolg zu vermelden.
Das Resultat: Wenn man die Ergebnisseite neu lädt, wird eben die Seite neu geladen, aber nicht noch einmal die Arbeit neu getan.
- Sven Rautenberg
--
ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|