Jump to content
xt:Commerce Community Forum

PHP-Einstellungen für Sessions und Cookies - Dokumentation?


John Steed

Recommended Posts

Huhu liebe Leute,

vielleicht kann mir jemand weiterhelfen, bzw. das alles mal in einem Thread sammeln. Es geht um die Einstellungen im Admin für Sessions und Suchmaschinen (xt:C Version 3.0.4), deren Dokumentation hier im Forum und auch in den Quelltexten doch recht spärlich ausfällt. Angenommen, man betreibt einen eigenen Server und kann sein PHP so konfigurieren, wie man will.

Welche PHP-Einstellungen sind nötig für

Admin -> Sessions

Cookie Benutzung bevorzugen = TRUE

Checken der SSL Session ID = TRUE

Checken des User Browsers = TRUE

Checken der IP Adresse = TRUE

Session erneuern = TRUE

Admin -> Meta-Tags/Suchmaschinen

Suchmaschinenfreundliche URLs benutzen? = TRUE

Spider Sessions vermeiden? = TRUE

Auf zahlreichen Servern bekommt man bei der einen oder anderen Einstellung TRUE nur noch leere Seiten. Eine zweite Frage: Wenn man "Cookie Benutzung bevorzugt", ist es möglich, dass der Shop automatisch die Session-ID an die URL hängt, wenn Cookies vom Browser nicht erlaubt werden? Ich hab's bis jetzt immer gehabt, dass dann die cookie_usage.php angezeigt wird :(

Cheers,

IaN

Link to comment
Share on other sites

  • 3 weeks later...

Eine zweite Frage: Wenn man "Cookie Benutzung bevorzugt", ist es möglich, dass der Shop automatisch die Session-ID an die URL hängt, wenn Cookies vom Browser nicht erlaubt werden?

Cheers,

IaN

1) "Cookie Benutzen bevorzugt" (Forced Cookies) auf True bedeutet das der User seine Browser MUSS Cookies annehmen! Vorteil ist das der Kunde seine Warenkorb befüllen kann, ausloggen, später sich wieder einloggen, und das Warenkorb ist noch intakt. Nachteil ist das durch dieser Einstellung werden manche Kunden von den Shop ausgeschlossen . . . (Siehe Punkt 3))

2) "Cookie Benutzen bevorzugt" (Forced Cookies) auf False bedeutet das der User seine Browser KANN Cookies annehmen, muss aber nicht. Nachteil ist das wenn der Kunde seine Warenkorb füllt, sich ausloggt, und später sich wieder einloggt, ist das Warenkorb leer.

Dieses gilt natürlich NUR wenn der Kunde seine Browser so eingestellt hat dass Cookies geblock wird. Sonst versucht der Shop (mit hilfe eine Test-Cookie) trotzdem eine Cookie zu setzen und wenn dieses gelingt fallen die Angehängten SID's weg. Und dann gehts weiter wie oben im Punkt 1)

3) Ich habe Jahren lang "Cookie Benutzen bevorzugt" auf True gehabt bis ich gemerkt habe dass ich dadurch Kunden veloren habe! Man sieht es wenn man in Admin / Who's Online anschaut tatsächlich wieviel Kunden mit Cookies Geblockt unterwegs sind (da sieht man immer an das SID hinten auf der URL)

Jim

Link to comment
Share on other sites

Danke Dir Jim!

da sieht man immer an das SID hinten auf der URL

(...)

Und dann gehts weiter wie oben im Punkt 1)

Genau da will einer meiner Shops nicht mitspielen - wenn ich Cookies bevorzugen auf FALSE stelle, wird dummerweise *immer* eine SID an die URL angehängt, egal ob der Browser Cookies akzeptiert oder nicht... :( Muss ich mir wohl doch mal die dafür zuständigen Includes genauer anschauen - und das im Weihnachtsgeschäft ;)

Bleibt noch die andere - für mich wesentlich wichtigere - Frage: Welche PHP-Settings benötigt werden, damit das ganze wie oben beschrieben funktioniert.

Link to comment
Share on other sites

Hallo,

in Verbindung mit SSL und Direct URL kann ich dir nur empfehlen alles auf false zu setzen. (Cache und Session)

Ich habe bei mir Session erneuern zusätzlich auf true.

Die Session kann man in Temp oder DB speichern, wobei eine regelmäßige Leerung sinnvoll wäre.

Grüße,

Andy

Link to comment
Share on other sites

Danke auch Dir, Andy. Leider bringt mich das immer noch nicht weiter...

Situation:

Ich betreibe seit mehreren Jahren mehrere Shops auf unterschiedlichen Servern.

  • Ich *will* das o.g. alles auf TRUE haben, was eigentlich auch bei allen älteren Shops funktioniert
  • Mein neuester Shop macht auf einem frisch aufgesetzten Rootserver nix davon - wenn eine (egal welche) der o.g. Einstellungen auf TRUE steht, gibbet nur noch weisse Seiten und man kann sich demzufolge auch nicht mehr einloggen. Also ab in die DB und alles wieder zurückbauen...
  • Server: openSuse, Apache 2, PHP 5, MySQL 5 wegen Stored Procedures für Levenshtein-Suche

Ich vermute, dass das an der Konfiguration von PHP liegt und würde deshalb gerne (immer noch...) wissen, auf welche PHP-Einstellungen die o.g. Funktionen angewiesen sind.

Oder, anders gefragt: Was muss in der php.ini stehen bzw. mit welchen Schaltern muss PHP kompiliert werden, damit alles geht.

Es geht also um die PHP-Konfiguration und nicht darum, was ich warum wie im Shop selbst ein - und ausstellen kann...

Wenn mir das hier keiner sagen kann, muss ich wohl oder übel alle Schalter einzeln ausprobieren und Error-Logs analysieren - dafür fehlt mir grad eigentlich die Zeit (und Lust...). :(

Ach ja, der Shop ist xt:C 3.0.4 SP 2.1 mit allen Patches.

Link to comment
Share on other sites

  • 4 months later...

hi,

hat jetzt hierfür schon jemand eine Lösung?

Bei mir ist es so, das ich die cookies brauche, ohne wenn und aber. deshalb interessiert es mich nicht, ob ich cookies auf false setzten muss, um mich wieder einzuloggen. Das heißt, das Problem wurde bisher mit Cookies auf false setzten nur umgangen und nicht gelöst.

Kurz um , bei mir funktioniert mit " cookies true " alles richtig. Vom Warenkorb bis zu Bestellung. Jedoch geht schlicht und einfach, der admin login nicht und ich lande wie so viele auf der Kundenanmeldung.

Ich kann aber ausschließen. das es an einem falsch eingestellten Server liegt, weil dieser keine Fehlermeldungen via Error Logs bringt. Kurzum, ich bin der Meinung, das irgendwo etwas im Shop geändert werden muss, vermutlich was ganz einfaches, nur weiß halt keiner wo.

Ich selbst hab auch schon Shops gesehen, die mit Direct URL und der Verwendung von cookies einwandfrei funktionieren. Kurz gesagt, es geht also. Deshalb meine Bitte, an einen vom Support ( weil Ihr habt von mir auch mal 99 Euro bekommen ), dass hier mal einer das Problem löst. Denn dieses Problem wird hier ja seit Jahren diskutiert.

Link to comment
Share on other sites

Klingt eher so, als ob deine SESSION Daten nicht angenommen werden oder übereinstimmen.

Schau doch mal nach, ob du nicht verschiedene SESSION Namen im Administrationsbereich und im normalen SHOP vergeben hast.

jeweils in der Datei:

/includes/applikation_top.php

/admin/includes/applikation_top.php

Andere Variante wäre: das eine Seite die Daten im Mysql speichert und die andere sie im tmp ordner

(configure.php im Admin sowie im normalen Ordner anschauen).

Deine Session existiert ja anscheinend, denn du kannst dich im Kundenbereich bewegen, du hast einen Administrationsbutton, also hast du auch den Status, nur sendet dich das System zurück, wenn du keinen validen Admin Status hast. Da würde ich mal ansetzen, irgendwas stimmt in der Kommunikation zwischen Admin und Kundenbereich nicht.

Link to comment
Share on other sites

Danke mal für die schnelle Antwort und den Hinweis.

Also in der configure.php in den Dateien includes und admin/includes habe ich gestern in beide dateien das mysql eingefügt, weil in verschiedenen beiträgen wurde das ja als Lösung genannt. an dem liegts also nicht.

zu den application_top.php in den Dateien includes und admin/includes.

Was genau meinst du mit session namen? weiß da jetzt nicht genau, nach was ich da in den beiden dateien suchen und vergleichen soll.

Link to comment
Share on other sites

Nachtrag:

Also in sämtlichen configure.php und configure.org.php hatte ich kein 'mysql' drin stehen. habs geändert und das 'mysql' in allen dateien hinzugefügt. mit dem ergebnis, es hat sich nichts geändert. problem ist also noch dasselbe.

hab in den application_top.php geschaut und folgenden gefunden:

// set the session name and save path
session_name('XTCsid');
if (STORE_SESSIONS != 'mysql') session_save_path(SESSION_WRITE_DIRECTORY);[/PHP]

hier steht also was mit 'mysql' , das heißt die dateien wollen es in der datenbankspeichern??? dann hätte doch das problem behoben sein müssen , also ich sämtliche configure und configure.org dateien auf 'mysql' umgestellt hatte???

ich werd noch zum hirsch !

Link to comment
Share on other sites

Nachtrag der zweite !

So dann ist mir soeben noch folgendes aufgefallen.

wenn ich die cookies lösche und ich melde mich als kunde an, dann erhalte ich folgende cookies.

- domain.de XTCsid

- domain.de cookie_test

melde ich mich aber als admin an, dann erhalte ich die selben cookies.

- domain.de XTCsid

- domain.de cookie_test

klicke ich nun auf Button "Administration" um in den Adminbereich zugelangen, dann komme ich ja nicht in den Adminbereich sondern auf die Kundenseite ( Bestellung usw usw ). Dabei erhalte ich zusätzlich folgenden cookie:

- w ww.domain.de cookie_test

Warum schickt es mir jetzt n cookie mit w ww.domain.de anstatt mit domain.de . ich glaub, dieses w ww.domain.de cookie ist der auslöser des problems.

Link to comment
Share on other sites

Problem erkannt, Problem gebannt !

Cookie True Admin Login Fehler gelöst !!!

So nachdem ich jetzt das ganze Wochenende im Netz und hier im Forum herum gesucht habe, zum Hirsch wurde und es mir schon die Locken geklättet hat. Hab ich doch jetzt tatsächlich die Lösung gefunden.

Man nehme einmal die admin/includes/application_top.php Datei.

In dieser Datei steht folgendes drin:

if (isset($HTTP_COOKIE_VARS['cookie_test'])) {
session_start();
$session_started = true;
[/PHP]

Dies habe ich nun in folgendes geändert:

[PHP]if (isset($_COOKIE['cookie_test'])) {
session_start();
$session_started = true;
[/PHP]

Und siehe da, ich kann mich ohne Probleme wieder in den Adminbereich einloggen. Die Kunden können sich einloggen und so wie es scheint, funktioniert es auch auf allen gängigen Browsern.

Deshalb erst mal ein lautes juu heiiii saaa saaa und Danke an alle die in diesem Forum kräftig schreiben und tüfteln. Besonderen Dank @mikkel, der hat die Lösung schon for einem dreiviertel Jahr gepostet.

Nun kann ich endlich wieder weiter basteln und den Shop fertig machen.

Link to comment
Share on other sites

hab in den application_top.php geschaut und folgenden gefunden:

// set the session name and save path
session_name('XTCsid');
if (STORE_SESSIONS != 'mysql') session_save_path(SESSION_WRITE_DIRECTORY);[/PHP]

hier steht also was mit 'mysql' , das heißt die dateien wollen es in der datenbankspeichern??? dann hätte doch das problem behoben sein müssen , also ich sämtliche configure und configure.org dateien auf 'mysql' umgestellt hatte???

Der Codeauszug bedeutet "Wenn Speichern in der Datenbank *nicht* aktiv (!= 'mysql'), dann speicher die Sessions als Dateien auf dem Server. Hat mit Deinem (inzwischen ja gelösten) Problem aber eh nix zu tun - nur der Vollständigkeit halber ;)

Ich bastel übrigens immer noch am kompletten Session-Handling rum, da mir das "aktuelle" mittlerweile tierisch auf die Nerven geht (wie macht Veyton das eigentlich?).

Habe inzwischen doppelt und dreifach verschlüsselte, viel längere Session-IDs mit Einbeziehung clientspezifischer Daten und eine Garbage Collection in 100% aller Fälle hinbekommen (wir hatten in unserem Shop Probleme mit Session Hijacking und Session Fixation-Angriffen!)

Jetzt fehlt mir nur noch der [i]automatische[/i] Switch auf "SID an die URL hängen, wenn Cookies deaktiviert" unter Umgehung der cookie_usage.php.

Das krieg ich aber auch noch hin - und wenn's bis zum Sankt-Nimmerleinstag dauert :rolleyes:

Cheers,

IaN

Link to comment
Share on other sites

  • 10 months later...

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...