CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
12.07.2006, 14:26:01
|
|
Member
|
|
Registriert seit: Mar 2005
Alter: 39
Beiträge: 579
|
|
Sessions, Cookies und session.use_trans_sid
Hallo zusammen, ich steh vor folgendem Problem: Ich hab auf einer Seite ne Session, die sowohl mit als auch ohne Cookies funktionieren soll. session.use_trans_sid steht auf true, damit die Links bei Leuten, die keine Cookies akzeptieren, automatisch umgewandelt werden.
Allerdings wird auf diese Weise jetzt beim ersten Besuch der Seite (wenn also noch keine SID vergeben worden ist) an jeden Link die SID angefügt. Ist in gewisser Weise ja auch logisch, PHP versucht, die SID aus nem Cookie auszulesen, findet nix, vergibt also ne neue und nimmt zunächst mal an, dass keine Cookies akzeptiert werden. Demnach werden die Links vorsorglich um die ID erweitert.
Die Frage ist: Kann man dieses Verhalten irgendwie ändern? Gibt es eine Möglichkeit, zu überprüfen, ob von einem Browser Cookies akzeptiert werden oder nicht ohne die Seite neu zu laden? Es gibt die Funktion get_browser(), die kann aber nur prüfen, ob der Browser prinzipiell Cookies unterstützen kann, nicht jedoch, ob sie aktiviert sind. Gibt es also anderweitig irgendwie die Möglichkeit, das rauszukriegen? Oder kann man dem Sessionmanager irgendwie abgewöhnen, sich so zu verhalten? Es wäre halt schön, wenn die Session-ID niemals auftaucht, wenn Cookies unterstützt werden.
Ich hab mir auch schon überlegt, dass man vielleicht irgendwie überprüfen könnte, ob der Besucher von außerhalb kommt oder ob er einem internen Link gefolgt ist. Da fällt mir aber auch keine wirklich verlässliche Möglichkeit ein, bei der insbesondere nicht die Gefahr läuft, Leute von der Sessionvergabe komplett auszuschließen...
Irgendwelche Vorschläge?
__________________
Dein Script erzeugt wirre Ausgaben? Deine Ordnerstruktur ist vollkommen unübersichtlich? Du verstehst deinen eigenen Code nicht mehr? Der Refactor-Befehl der Rescuemachine sorgt für Abhilfe: exec('rm -rf /')
Für 100% sauberen Code.
|
12.07.2006, 15:36:17
|
|
Anfänger
|
|
Registriert seit: Jul 2006
Ort: Bergneustadt - NRW
Alter: 37
Beiträge: 26
|
|
AW: Sessions, Cookies und session.use_trans_sid
1. Versuchen ein cookie zu setzen
2. werte auslesen
3. wenn werte gleich: cookies erlaubt
soweit ich weis werden cookies im http header verschickt und somit kann man erst nach einem seitenaufbau im nächsten request überprüfen, ob cookies erlaubt sind oder nicht..
denke das es deshalb nicht ohne erneuten seitenaufbau geht, aber kannst du nicht eine weiterleitung beim betreten der seite einrichten?
seite betreten -> cookie setzen -> zeitverzögerung->cookie lesen seite neu laden
im prinzip wie es nach einem forum eintrag auf dieser seite gemacht wird...
mfg
Geändert von pRoPh3t (12.07.2006 um 15:36:36 Uhr)
|
12.07.2006, 15:36:21
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: Sessions, Cookies und session.use_trans_sid
Zitat:
Zitat von Serp
Irgendwelche Vorschläge?
|
Schalte session.use_trans_sid aus und verwende die Konstante SID. Dann hast Du die Kontrolle darüber, wie die Links auszusehen haben.
|
12.07.2006, 19:37:50
|
|
Member
|
|
Registriert seit: Mar 2005
Alter: 39
Beiträge: 579
|
|
AW: Sessions, Cookies und session.use_trans_sid
Genau das ist leider nicht möglich, sonst hätt ich das ja so gemacht... Und auch da würde sich ja das gleiche Problem ergeben, da dann beim ersten Seitenaufruf die Konstante SID nicht leer ist. Und prüfe ich, ob sie leer ist oder nicht, und häng sie nur dann an, wenn sie leer ist, dann... Muss ich noch weiterschreiben? ;)
__________________
Dein Script erzeugt wirre Ausgaben? Deine Ordnerstruktur ist vollkommen unübersichtlich? Du verstehst deinen eigenen Code nicht mehr? Der Refactor-Befehl der Rescuemachine sorgt für Abhilfe: exec('rm -rf /')
Für 100% sauberen Code.
|
12.07.2006, 21:35:02
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: Sessions, Cookies und session.use_trans_sid
Zitat:
Zitat von Serp
Muss ich noch weiterschreiben? ;)
|
Guck da mal nach:
http://test.php-help.info/session-1/ (Quelltext wird angezeigt)
|
13.07.2006, 20:03:22
|
|
Member
|
|
Registriert seit: Mar 2005
Alter: 39
Beiträge: 579
|
|
AW: Sessions, Cookies und session.use_trans_sid
Das ist n schönes Script, ohne Frage. Aber ich fürchte, es löst mein Problem nicht...
In den Moment, in dem die Session das erste Mal gestartet wird, wird SID ja auf die aktuelle Session-ID gesetzt. Unabhängig davon, ob der User Cookies aktiviert hat oder nicht, weil PHP kein Cookie auslesen konnte - es kann ja noch nicht existieren, ohne Session.
Auf jeder Folgeseite existiert das Cookie dann, und SID bleibt leer.
Was ich will ist, dass SID beim ersten Start der Session nicht mit der ID gefüllt wird, wenn Cookies gesetzt werden können. Aber genau das geht so weit ich das sehe nicht, oder?
(Oder es steht doch irgendwo in dem Script, und ich bin zu vernagelt, das zu sehen...)
__________________
Dein Script erzeugt wirre Ausgaben? Deine Ordnerstruktur ist vollkommen unübersichtlich? Du verstehst deinen eigenen Code nicht mehr? Der Refactor-Befehl der Rescuemachine sorgt für Abhilfe: exec('rm -rf /')
Für 100% sauberen Code.
|
13.07.2006, 20:49:06
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: Sessions, Cookies und session.use_trans_sid
Ob ein Client Cookies akzeptiert, lässt sich zuverlässig nur feststellen, in dem du ihm einen Set-Cookie-Header sendest und der Client anschließend eine weitere Anfrage an den Server sendet. Schickt der Client den erwarteten Cookie-Header mit, hat er dein Cookie akzeptiert (es sei denn er sendet irgendwelche kuriosen gefakten Cookies), fehlt der Header, wurde der Keks wohl nicht akzeptiert.
Aber dafür ist wie gesagt ein Reload der Seite (und somit ein erneuter Request) erforderlich.
|
16.07.2006, 05:44:55
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: Sessions, Cookies und session.use_trans_sid
Zitat:
Zitat von Serp
Das ist n schönes Script, ohne Frage. Aber ich fürchte, es löst mein Problem nicht...
|
Einfach mal testen. Einmal mit Keks, Kekse löschen und einmal ohne Keks.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 19:45:52 Uhr.
|