PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Session-Handling der Karte für User ohne Cookies


Gérome
16.03.2008, 14:14
Moin,

ich habe im Code Stellen ausgemacht, die kein Session-Handling betreiben, was dazu führt, dass die Karte für Benutzer, die keine Cookies akzeptieren, aktuell nicht oder nur eingeschränkt benutzbar ist.

(1)
im Template "vbmm_home" fehlt im wichtigsten Link - nämlich in dem, der die Karte anzeigt - die Session-ID. Das führt dazu, dass User ohne Cookies, die Karte nicht zu Gesicht bekommen, wenn diese für Gäste nicht aktiviert ist.

Lösung - "$session[sessionurl]" ins Image-Tag einfügen:
HTML:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------

(2)
Im Template "vbmm_statisticuserlink" fehlt im Link zum User-Profil die Angabe der Session-ID. Das kann ebenfalls dazu führen, dass Benutzer, die keine Cookies akzeptieren wollen oder können, beim Klick auf diesen Link ausgeloggt werden.

(3)
Die Links im dynamischen Overlay vermissen ebenfalls Session-IDs und sind somit für Benutzer ohne Cookies beim Anklicken mit dem unmittelbaren Ausloggen verbunden.

(4)
Den Formularen rund um die Optionsfelder zum Auswählen der Karte sowie der anzuzeigenden Einträge fehlen die Session-IDs als versteckte Felder. Auch hier werden Benutzer ohne Cookies u.U. unmittelbar nach dem Treffen einer Auswahl ausgeloggt.

(5)
Und noch ein wenig Kleinkram: Es geht um die Verwendung von "$vbulletin->session->vars['sessionurl_q']" vs. "$vbulletin->session->vars['sessionurl']" (man beachte das _q am Ende).

Die Variante mit dem "_q" am Ende schaut wie folgt aus: "?s={session-id}"
Die Variante ohne das "_q" am Ende schaut wie folgt aus: "s={session-id}&"

Im Script "vbmembermap.php" wird gelegentlich die falsche Variante genutzt, was streng genommen zu nicht standard-konformen URLs führt. Folgendes Beispiel ergibt ein doppeltes Fragezeichen "vbmembermap.php??s={session-id}" und führt auch wieder zum Ausloggen des Users:

PHP:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------


Grüße,
Gérome

Vossi
16.03.2008, 14:46
Vielen Dank für das Feedback :)
ich habe im Code Stellen ausgemacht, die kein Session-Handling betreiben, was dazu führt, dass die Karte für Benutzer, die keine Cookies akzeptieren, aktuell nicht oder nur eingeschränkt benutzbar ist.
Ist in 2.0.1 bereits gefixed, Andreas war da schon am Werk! :D
Den Formularen rund um die Optionsfelder zum Auswählen der Karte sowie der anzuzeigenden Einträge fehlen die Session-IDs als versteckte Felder. Auch hier werden Benutzer ohne Cookies u.U. unmittelbar nach dem Treffen einer Auswahl ausgeloggt.
Zudem musste die 'do='-Übergabe noch an einigen Stellen in den Formularen eingebunden werden trotz das dieses bereits in der URL der actionform steht.
Und noch ein wenig Kleinkram: Es geht um die Verwendung von "$vbulletin->session->vars['sessionurl_q']" vs. "$vbulletin->session->vars['sessionurl']" (man beachte das _q am Ende).

Die Variante mit dem "_q" am Ende schaut wie folgt aus: "?s={session-id}"
Die Variante ohne das "_q" am Ende schaut wie folgt aus: "s={session-id}&"

Bei Aufrufen ohne Parameter sessionurl_q, bei Aufrufen mit Parameter sessionurl... Hab's erst vor ein paar Tagen gelernt :D