Die Seite hat bis gestern funktioniert und gerade jetzt verhält sie sich seltsam.
Die Site wird nicht mit Funktionen erstellt, ein Archivspeicherauszug mit Code und Datenbank wird auf den Server kopiert und die alte Installation wird (leider) manuell durch die neue ersetzt.Jetzt ist es irrelavant, auch auf dem lokalen Server zu geschehen.- Es ist kein Caching-Modul installiert. Die Sitzungs-API ist ebenfalls nicht installiert.
- Das Thema ist auf 'sieben' gesetzt (Kern-Admin-Thema, nur für den Fall).
- Der Watchdog enthält keine Fehler, Warnungen oder Informationen außer der üblichen "Sitzung für Benutzer xyz geöffnet".
- Die Einstellungsdatei enthält keine spezielle Cookie-Direktive. Das hat es nie getan.
- Die Seite läuft auf PHP 5.6, Apache 2.2, CentOS 6. PHP läuft als Fast-CGI. Dasselbe wie immer.
- Es ist Drupal 7.
Ich gehe zu example.com/user/login, gebe Benutzername und Passwort ein, das Formular wurde erfolgreich gesendet, die Seite wird zu example.com/user/%uid umgeleitet (habe sowohl uid 1 als auch andere Benutzer ausprobiert). und boom! Ich bekomme einen Zugang verweigert . Und der Benutzer ist nicht angemeldet.
Wenn ich die Sitzungstabelle mit abschneide, truncate table sessions
kann ich mich mit jedem Benutzer einmal und nur einmal anmelden. Andererseits kann sich niemand anmelden, nicht einmal UID 1.
Auch mit einem Link zum Zurücksetzen des Passworts (mit dem Befehl drush uli
kann ich mich problemlos anmelden).
Ich habe alle Contrib-Module und -Themen deaktiviert , aber das gleiche Problem besteht weiterhin.
Was verursacht solche Probleme mit Sitzungen? irgendwelche Ideen?
uid
noch den Wert 0 hat (er wird häufig von einer SQL-Dumping-Software gelöscht und neu nummeriert). Was Sie beschreiben, ist genau das, was passiert, wenn diese Aufzeichnung veröffentlicht wirdAntworten:
Das Problem war das Modul ip_geoloc . Es wurde vermasselt $ _SESSION Variable wird eine Lösung auf bestimmten der Ausgabewarteschlange (jetzt!) Und das Modul Autor stimmt es. Es ist sehr wahrscheinlich, dass dies aufgrund einer Fehlkonfiguration durch mich geschieht. Der Benutzer wurde erfolgreich angemeldet, aber sofort wurde seine Sitzung ungültig. Irgendwie war es nicht genug, es zu deaktivieren und das Verzeichnis musste aus dem Drupal-Stamm verschoben werden. Ich bin zu 100% sicher, dass keine seiner Funktionen oder APIs irgendwo anders verwendet werden. Vielleicht ein Cache-Problem?
Lektion gelernt:
Wenn Sie ein Anmeldeproblem haben, versuchen Sie, die Variable $ _SESSION auf dem Server mithilfe von devel und ihren Hilfsfunktionen (z. B. dpm , dsm , dd , ... oder als letztes Mittel var_export) zu überprüfen, und nicht mit Ihrer Google / Firefox-Entwicklerkonsole .
Dies ist das dritte Mal, dass ich mit diesem seltsamen Verhalten konfrontiert bin und das erste Mal, dass ich es beheben konnte. Wenn Sie dieses Problem haben, versuchen Sie, diese Checkliste zu befolgen:
Frag dich selbst:
Orte zu suchen / Dinge zu tun
drush rs
oderdrush rs the.ip.goes.here:thePort
drush ard
oder nur mit einer Datenbankdrush sql-dump > db.sql
erstellen oder das Modul backup_migrate verwenden)drush dis -y $(drush pml --nocore --status=enabled --pipe)
-> Dieser Befehl funktioniert nur in * nix-Systemen. Ich kenne die direkte Übersetzung für Windows nicht .drush en seven && drush vset theme_default seven
;Viel Glück beim Debuggen!
quelle
Was für mich funktioniert hat, war das Aktivieren und Konfigurieren der
$cookie_domain
Variablen in settings.php (weil ich eine Site habe, auf die 2 verschiedene Domänen zugreifen können).Beachten Sie den Kommentar vor dieser Variablen! Der Domainname muss mit einem Punkt beginnen. EX:
$cookie_domain = '.example.com';
Viel Glück!
quelle