"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Cookies in PHP?

Geigerzeiger 28.01.2004 - 18:45 1223 26
Posts

Geigerzeiger

Addicted
Registered: Jan 2004
Location: anywhere
Posts: 449
Wollte fragen, wie man in ein PHP Programm Cookies einbaut. Ein Freund und ich möchten ein Forum machen. Man soll sich registrieren können und kann sich immer in das Forum einloggen. Bräucht ne Lösung sodass man sich nichtmehr einloggen muss. Der User soll sich automatisch einloggen können. (so wie hier oc.at). Dies soll anscheinend mit Cookies funktionieren. Hätte jemand Vorschläge?

Danke im Voraus!

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4452
Fuer Forum bieten sich zwei dinge dringlichst an: Session handling fuer normale Forumoperationen und optional Cookies fuer autom. Logins.

Sessions bei PHP funktionieren transparent mit oder ohne Cookies. Es empfiehlt sie die Dokumentation zu http://php.net/session zu lesen und die Verwendung von superglobalen Variablen, u.A. $_SESSION und $_COOKIES.

Bei konkreten Fragen -> hier posten (am besten in diesem Thread gleich)

roye

Little Overclocker
Registered: Nov 2003
Location: Wien
Posts: 52

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4282
ober mir sind zwar im grunde alles nötige gesagt, aber ich würde sehr zu einem fertigen forum raten. gerade wenn man nicht allzuviel ahnung von php & co hat, ist das coden eines forums imho ein zu hoch gestecktes ziel. gratis & recht gut ist z.b. phpbb (http://www.phpbb.com)

MIK

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4452
FACK

(full ack, fuer die dies net wissen ;) )

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
eine grundstruktur eines formums hat man wohl schnell gemacht, aber die usability, die zusatz-features, die ordnetliche abstraktion der funktionen, anzeige, etc... brauchen garantiert ein zweistelliges viefaches davon. (wenn es was ordentliches sein soll)

FMFlash

tranceCoder
Avatar
Registered: Mar 2001
Location: Wien
Posts: 2037
Zitat von Rektal
Session handling fuer normale Forumoperationen und optional Cookies fuer autom. Logins.

Sessions bei PHP funktionieren transparent mit oder ohne Cookies. Es empfiehlt sie die Dokumentation zu http://php.net/session zu lesen und die Verwendung von superglobalen Variablen, u.A. $_SESSION und $_COOKIES.

Worin liegt der genaue Unterschied zwischen SESSION und COOKIE ?
Benutzt man $_SESSION wird die Session-ID genauso über ein Cookie abgewickelt - so interpretiere ich jedenfalls den HTTP Header:

...
Cookie: PHPSESSID=1c507b8dbf54b1d2bd12b2db66c67cf7
...

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4452
Bei Cookies arbeitest du explizit mit .. Cookies. D.h. du setzt eines mit einem Wert, liest es oder loeschst es. Aber: ob der browser die jetzt kann oder nicht musst du selber checken im PHP code.

Session handling ist ein wenig aufwendiger. Sessions werden (in PHP) transparent entweder ueber Cookies gehandelt (wenns der Browser aktiviert hat) oder ansonsten ueber URL direkt (GET/POST) request.

Sessions nimmst du immer dann wenn du einen State von einem Request zum naechsten "tragen" moechtest (state = variablen, arrays, objekte, whatever, keine resourcen). Ob das jetzt ueber GET/POST oder Cookies geht lass PHP entscheiden, hat dich net zu interessieren. Die user die aus Paranoia oder anderen Gruenden keine Cookies aktiviert haben werdens dir danken. Sessions verwendest wenn du merken moechtest ob jemand authentifiziert ist usw.

Wenn du explizit mit Cookies codest und du keinen Spezialfall a'la Intranet hast sollten es nur Dinge als "value added benefit" sein. D.h., wenns net geht ists auch kein Drama. Was mit authentifiziereungen usw. natuerlich nicht gemacht werden sollte (boeses programmier karma). Aber z.B. naechstes mal beim forum automatisch einloggen -> wer cookies hat, ok. wer nicht, der nicht.

When in doubt, use sessions oder frag hier weiter ;)

dio

Here to stay
Registered: Nov 2002
Location: Graz
Posts: 4884
Zitat von Rektal
Bei Cookies arbeitest du explizit mit .. Cookies. D.h. du setzt eines mit einem Wert, liest es oder loeschst es. Aber: ob der browser die jetzt kann oder nicht musst du selber checken im PHP code.

Session handling ist ein wenig aufwendiger. Sessions werden (in PHP) transparent entweder ueber Cookies gehandelt (wenns der Browser aktiviert hat) oder ansonsten ueber URL direkt (GET/POST) request.

Sessions nimmst du immer dann wenn du einen State von einem Request zum naechsten "tragen" moechtest (state = variablen, arrays, objekte, whatever, keine resourcen). Ob das jetzt ueber GET/POST oder Cookies geht lass PHP entscheiden, hat dich net zu interessieren. Die user die aus Paranoia oder anderen Gruenden keine Cookies aktiviert haben werdens dir danken. Sessions verwendest wenn du merken moechtest ob jemand authentifiziert ist usw.

Wenn du explizit mit Cookies codest und du keinen Spezialfall a'la Intranet hast sollten es nur Dinge als "value added benefit" sein. D.h., wenns net geht ists auch kein Drama. Was mit authentifiziereungen usw. natuerlich nicht gemacht werden sollte (boeses programmier karma). Aber z.B. naechstes mal beim forum automatisch einloggen -> wer cookies hat, ok. wer nicht, der nicht.

When in doubt, use sessions oder frag hier weiter ;)
imho zahlts sich fast ned aus, auf leute rücksicht nehmen die keine cookies aktiviert ham :) sind so wenige, das könnt ma bei einer normalen site an einer hand abzähln

dazu muss ich sagen dass mir sessions einfach unsympathisch sind - kA warum :)

Hakke

Little Overclocker
Avatar
Registered: Jul 2003
Location: München
Posts: 79
Und um ihn noch ein wenig mehr zu verwirren:
Man kann abfragen einbauen, nach denen man entweder Cookies oder session benutzt, je nachdem, ob der Client ihn annimmt oder nicht ;)
Zu einem fertigen Forum würde ich ebenfalls raten, für den Anfangs tuts auch ein miniBB oder das Phorum (google sagt dir wo).

LG, Flo

FMFlash

tranceCoder
Avatar
Registered: Mar 2001
Location: Wien
Posts: 2037
Zitat von Rektal
When in doubt, use sessions oder frag hier weiter ;)

Ich verwende Sessions und es funktioniert einwandfrei. Allerdings hat es für ein Forum den großen Nachteil das man sich bei jedem Besuch mindestens 1x einloggen muss. Für meine Zwecke ideal aber bei einem Forum wünscht man sich doch schon das man - wenn man es so will - automatisch eingeloggt wird.

dio

Here to stay
Registered: Nov 2002
Location: Graz
Posts: 4884
Zitat von FMFlash
Ich verwende Sessions und es funktioniert einwandfrei. Allerdings hat es für ein Forum den großen Nachteil das man sich bei jedem Besuch mindestens 1x einloggen muss. Für meine Zwecke ideal aber bei einem Forum wünscht man sich doch schon das man - wenn man es so will - automatisch eingeloggt wird.
kannst eh auch so lösen - einfach a mysql db anlegen und ip + session id speichern, beim nächsten besuch einfach abfragn

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4452
Zitat von FMFlash
Ich verwende Sessions und es funktioniert einwandfrei. Allerdings hat es für ein Forum den großen Nachteil das man sich bei jedem Besuch mindestens 1x einloggen muss. Für meine Zwecke ideal aber bei einem Forum wünscht man sich doch schon das man - wenn man es so will - automatisch eingeloggt wird.

Ist auch ok. Und zusaetzlich programmierst du eine Logik ein die ein Cookie setzt fuer automatisches wiedereinlogge, presto.

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4452
Zitat von diokletian
imho zahlts sich fast ned aus, auf leute rücksicht nehmen die keine cookies aktiviert ham :) sind so wenige, das könnt ma bei einer normalen site an einer hand abzähln

dazu muss ich sagen dass mir sessions einfach unsympathisch sind - kA warum :)

Schlechter Stil und keine Ahnung von der Materie kommt mir. Vermutlich sind dir Menschen mit besonderen Beduerfnissen auch egal, weil sie in der Minderheit sind, right?

Jemand der sich auskennt, fuer den stellt es keine besondere Arbeitsanforderung dar, es mit Sessions&Cookies gemeinsam umzusetzen.

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4452
Zitat von Hakke
Man kann abfragen einbauen, nach denen man entweder Cookies oder session benutzt, je nachdem, ob der Client ihn annimmt oder nicht ;)

Wtf? Wo ist der Sinn? Genau das machen die PHP Sessions automatisch. Wenn er dann nochmal Cookies fuer andere Dingen verwenden moechte, ist das auch voelleig OK.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz