2012-05-09 6 views
5

Ich habe dieses seltsame Problem mit meinen ci-Sitzungen. auf localhost funktioniert gut, aber Online das Protokoll zeigt den Fehler:coderignier Sitzung benutzerdefinierte Daten verloren, aber nicht auf localhost

The session cookie data did not match what was expected. This could be a possible hacking attempt.

ich alle Cookies entfernt und entleert den Sitzungen Tisch. Ich habe auch user_agent length auf 255 gesetzt. Basepath ist auch korrekt. Was notiert wird, wenn ich die Sitzungsidentifikation notiere, ist folgende:

Auf der Anmeldeseite und beim Überprüfen von Benutzername/PW ist die ID die gleiche, dann gehe ich in meinen Mitgliederbereich, wo sich die ID geändert hat.

Ein weiteres Beispiel:
1. Ich an die Mitglieder Bereich gehen, Session-ID gesetzt ist, ich bin nicht angemeldet, im anmelden
2. Login-Seite, Session-ID geändert wird gesendet, anmelden i
3. Validierung, Sitzungs-ID ist unverändert, ich bin validiert und an Mitglieder Bereich gesendet
4. Auf Mitglieder Bereich, Sitzungs-ID geändert wird, bin ich nicht angemeldet.

Auf der Anmeldeseite, meine Sitzungen Tabelle zählt 0 Zeilen, wenn ich mich anmelde die Sitzung Tabelle zählt 2/3 Zeilen. 1 von ihnen, aber nicht der mit der aktuellen Sitzungs-ID enthält alle korrekten Daten.

Hoffentlich kann mir jemand dabei helfen.

+0

Vielleicht hilft: http://stackoverflow.com/questions/9007282/ci-2-0-3-session-heisenbug-session-is-lost-after-some-time-20-minutes -only-on –

Antwort

4

ich denke CodeIgnitor nativen pHP-Session-Bibliothek, die Probleme hat. Es verursacht die Probleme, die Sie beschreiben, denn wenn die Cookies nicht gesetzt sind, wird es nicht gesetzt. Außerdem wird es die Sitzung nicht erkennen können. Um dieses Problem zu vermeiden, können Sie verwenden Native Session Class

Hier sind einige Links, um meine Antwort zu unterstützen. Problems with cookies/MAMP/Codeingiter http://myphplibrary.blogspot.in/2012/03/codeigniter-session-issue-fixation.html

+0

Danke für die Hilfe. Ich habe das gleiche woanders gelesen. Ich muss dann für die Native Session Class gehen. Vielen Dank. – Meddie

+0

Sie sind herzlich willkommen –

+1

..und die Magie ist passiert. Die NS-Klasse wirkt wie ein Zauber! – Meddie

1

Ein paar Dinge zu überprüfen;

  1. Die Server-Ortszeit im Vergleich zur Ortszeit - vielleicht läuft der Cookie so ab, wie er eingestellt ist? Um zu bestätigen, - stellen Sie die $ config [ 'sess_expiration'] Zeit 9999999 mögen und sehen, ob es funktioniert

  2. $ config deaktivieren [ 'encrypt_cookie']

  3. Schalten Sie $ config [ 'sess_match_ip']

  4. Stellen Sie sicher, die richtige Cookie-Informationen festgelegt haben:

    $config['cookie_prefix'] = ""; 
    $config['cookie_domain'] = // YOUR DOMAIN 
    $config['cookie_path']  = // YOUR BASE URI 
    $config['cookie_secure'] = FALSE; 
    
+0

Ich hatte tatsächlich alle Einstellungen (außer sess_expiration) bereits eingestellt, wie Sie beschrieben. Es hat aber nicht funktioniert. Danke trotzdem. – Meddie

Verwandte Themen