 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
31.08.2005, 16:47
|
#16
|
|
TP-Veteran
Registriert seit: Jan 2002
|
Nein, Dennis (giv) hat recht. Session ohne Empfangen und zurücksenden der Session-ID durch den Browser geht nicht, kann prinzipiell nicht gehen.
Wie soll PHP ohne eine mitgesendete Session-ID erkennen, zu welcher laufenden Session die HTTP-Anfrage gehört?
Oder reden wir irgendwie aneinander vorbei und es geht gar nicht (mehr) darum, Sessions ohne Cookie oder GET-Übergabe der Session-ID zu realisieren?
|
|
|
31.08.2005, 17:03
|
#17
|
|
TP-Veteran
Registriert seit: Sep 2002
Ort: Schweiz
|
wenn ich da auch mal meinen senf dazu geben dürfte: recht hat, wer sagt, dass sessions auch ohne url übergabe funktionieren. das ist nun mal ein fakt und auch gut so, denn:
man sollte sich bei der programmierung (und allgemein  ) so wenig wie möglich auf einstellungen auf user seite verlassen, das gilt auch für cookies. ich mein wieso sollte man den benutzer dazu zwingen irgendwas auf seinem rechner zu speichern, wenn dies ebenso gut serverseitig geht und somit vollends in der hand des programmierers/admin liegt?
ausserdem mag ich (und sicher 99% der restlichen user) keine pogramme, die auf grund von nicht kontrollierbaren umständen nicht lauffähig sind. und da gehören abgeschaltete cookies mit sicherheit dazu.
sodele.. feierabend für heute
//nachtrag: wer was über sessions lernen will, dem tät ich doch mal den workshop hier in der traumdynamik nahe legen. geht dabei um ein login-script glaubich...
Geändert von Daniel N. (31.08.2005 um 17:06 Uhr).
|
|
|
31.08.2005, 17:56
|
#18
|
|
TP-Veteran
Registriert seit: Sep 2004
|
aber ohne url-übergabe geht es eben mit cookies, oder wie soll die session-id sonst noch übergeben werden?
|
|
|
31.08.2005, 19:11
|
#19
|
|
TP-Senior
Registriert seit: Jan 2003
Ort: Darmstadt
|
also, http ist ein zustandsloses protokoll, d.h. es bringt von haus aus keine sessions mit. eine http anfrage hat mit der nächsten nichts zu tun. dass man aber nicht auf sessions verzichten muss, kann man diese auf anwendungsebene modellieren.
dazu bietet php eine serverseitige standardlösung. die php session generiert eine session id, die dem client mitgeteilt wird. über diese kann sich der client gegenüber der session beim nächsten http request authentifizieren.
damit der php-programmierer und auch der user auf clientseite sich möglichst nicht mit dem session management rumschlagen müssen, sendet php einen cookie, der die session id enthält. dadurch authentifiziert sich der client gegenüber der php session automatisch.
so, jetzt kann der user den client so konfigurieren, dass er keine cookies akzeptiert. daher muss man sich einen anderen weg suchen, um die session id zu übergeben. das kann man über die url machen bzw in formularen auch mit einem hidden field.
sollten nun keine cookies unterstützt werden und will man die url übergabe vermeiden, dann kann man die session id bestimmt nicht in der session speichern (auf dem server!!). wie soll denn dann der client authentifiziert werden?
@Master_T2: falls du bei dir ein script getestet hast, bei dem du denkst, dass es so funktioniert, dann vergewissere dich bitte, ob deine session auch richtig konfiguriert ist. session.use_only_cookies sollte angeschaltet sein und session.use_trans_sid sollte ausgeschaltet sein. letzteres macht nämlich nichts anderes, als die session id automatisch an alle urls anzuhängen. außerdem sollten cookies in deinem browser auch wirklich abgeschaltet sein.
wenn dein szenario dann immer noch funktioniert, dann poste es bitte.
da steht eigentlich auch alles: http://www.php.net/manual/de/ref.session.php
__________________
forenregeln - 3.d) ... richtige groß- und kleinschreibung benutzen ...
|
|
|
31.08.2005, 19:17
|
#20
|
|
TP-Specialist
Registriert seit: Oct 2002
Ort: Übach-Palenberg
|
Zitat:
|
aber ohne url-übergabe geht es eben mit cookies, oder wie soll die session-id sonst noch übergeben werden?
|
In dem man die session-id in einer Session selbst speichert?!?
__________________
Grüße aus Übach-Palenberg
Tim
WEB.ASSISTANTS IT-SOLUTIONS
www.web-assistants.de
Hängt das doch mal an eine beliebige PHP-Datei: ?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
|
|
|
31.08.2005, 19:46
|
#21
|
|
TP-Veteran
Registriert seit: Jan 2002
|
Trotzkopf
Probier es aus, wie Dennis gesagt hat. "Learning by doing" ist für mich auch immer das beste  .
Nebenbei: Wenn es funktionieren würde, wie du felsenfest behauptest, wozu gibt es dann überhaupt Session-IDs? Die wären doch dann völlig sinnlos.
Geändert von seb (31.08.2005 um 19:48 Uhr).
|
|
|
31.08.2005, 21:11
|
#22
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
Ihr redet aneinander vorbei.
Wenn man eine Seite mit session_start() beginnt, wird geschaut, ob eine Session existiert. Dieses geschieht auf die Art und Weise, wie der Session-handler konfiguriert ist:
a. In einem Cookie
b. Als Datei im Temp-Pfad
c. In der Datenbank
Ist alles nicht vorhanden, wird eine neue Session eingerichtet.
Sessions haben eine eindeutige ID. Wurde eine übergeben, so wird diese Session wieder aufgegriffen, wenn nicht, wird die neue Session gestartet.
Sessions werden nicht übergeben wie Get oder Post-Variabeln, sondern auf eine der Arten auf dem System gespeichert.
Sessions sind nicht so geheimnisvoll, es ist nur eine Art Superglobale, die mehrere Form der Speicherung bietet.
|
|
|
31.08.2005, 21:38
|
#23
|
|
TP-Veteran
Registriert seit: Sep 2004
|
ok, nur wenn man keine cookies akzeptiert dann wird die id auch nicht übertragen, ausser halt über die url.
ich hab vorhin ne klasse gefunden fallback wo serverseitig geprüft wird ob cookies akzeptiert werden. geht das nicht auch einfacher? ausserdem steht in den faq diese klasse ist eh veraltet
|
|
|
31.08.2005, 21:45
|
#24
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
das macht doch PHP normalerweise automatisch, das ist ja das gute (und macht es dem Programmierer doch ganz einfach).
Nur wenn man in der Konfiguration das unterdrückt, muss man wieder selber dafür sorgen.
|
|
|
31.08.2005, 22:52
|
#25
|
|
TP-Veteran
Registriert seit: Sep 2004
|
und wie macht das php automatisch bzw. wie kann man selbst dafür sorgen?
|
|
|
31.08.2005, 22:57
|
#26
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
in dem man die Standardeinstellung nutzt.
Die Standardeinstellung ist hier beschrieben : http://php3.de/manual/de/ref.session.php
wichtig vor allem diese beiden Werte:
session.use_cookies =1
session.use_only_cookies =0
|
|
|
31.08.2005, 23:41
|
#27
|
|
TP-Veteran
Registriert seit: Sep 2004
|
ich habe mich jetzt mal etwas kundig gemacht und hab noch eine letzte frage :-)
wenn man überprüfen will ob der browser cookies akzeptiert muss ein cookie gesetzt werden danach ein reload mittels header und dann wird überprüft ob die variable $_COOKIE gesetzt ist
ich hatte gestern einfach ohne einen reload die variable geprüft und es ging auch...ist denn dieser reload unbedingt nötig? bin grad etwas unsicher. hab noc hdas hier gefunden:
http://de2.php.net/set_cookie
Häufige Probleme:
Cookies werden nicht sichtbar, bevor nicht eine Seite geladen wird, in der das Cookie sichtbar sein soll. Um zu testen, ob ein Cookie erfolgreich gesetzt wurde, prüfen Sie noch vor der Ablaufzeit auf einer weiteren Seite ob das Cookie vorhanden ist. Die Ablaufzeit wird mittels dem Parameter expire gesetzt. Eine nette Möglichkeit um die Existenz von Cookies zu prüfen, ist print_r($_COOKIE); aufzurufen.
|
|
|
31.08.2005, 23:49
|
#28
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
die Variable $_COOKIE ist immer vorhanden, da es sich um eine Superglobale handelt.
Entscheidend ist, ob sie gefüllt ist.
Also ein if(isset($_COOKIE)) bringt nichts, da der Ausdruck immer wahr ist.
Dafür gibt es die Funktion if(empty($_COOKIE))
|
|
|
01.09.2005, 00:11
|
#29
|
|
TP-Veteran
Registriert seit: Sep 2004
|
und dazu brauch ich dann den reload aber nich oder? ich kann ja sofort prüfen if(empty...) oder geht das nich?
falls jemand die cookies nicht annimmt kann ich zumindest ne hinweisseite machen
|
|
|
01.09.2005, 00:20
|
#30
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
nein, der reload ist nicht nötig - sonst könnte man im Script die Variable $_COOKIE ja gar nicht nutzen 
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:12 Uhr.
|
 |