Gelöst: Frontendlogin mit Sonderzeichen in 4.8.7 fehlerhaft

Gesperrt
homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Gelöst: Frontendlogin mit Sonderzeichen in 4.8.7 fehlerhaft

Beitrag von homtata » Di 19. Aug 2008, 10:13

Hallo Leute,
habe soeben ein Upgrade durchgeführt. Seither kann ich mich mit keinem Frontenduser mehr einloggen. Ich lande einfach auf einer Seite "cms/front_content.php?idart=" ohne weitere Artikelbezeichnung.
Das Loginformular springt einfach zurück auf "Eingabe", lässt mich aber nicht in den geschützten Bereich durch.
Cache, Verlauf usw. wurde alles schon mehrfach gelöscht.

Die Frontenduser und -gruppen existieren weiterhin im Backend.

Mir gehen die Ideen aus, weiß jemand Rat?
Zuletzt geändert von homtata am Di 19. Aug 2008, 15:24, insgesamt 2-mal geändert.

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Beitrag von homtata » Di 19. Aug 2008, 14:49

Problem eingegrenzt, aber nicht gelöst:

Ich habe ein verzahntes System FEUser & Newsletteranmeldung, daher sind meine FE Usernamen = E-Mail-Adresse.

Beim Abspeichern in die con_frontendusers wurden und werden die "@" vom System umkodiert in "%40".

In 4.8.6 wurden beim Überprüfen, ob der User existiert, diese Sonderzeichen wieder zurückkodiert, während dies in der 4.8.7 NICHT der Fall ist.

Weiß jemand, wo ich den Rückumwandlungsbefehl im System wieder eintragen kann?

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Beitrag von homtata » Di 19. Aug 2008, 15:23

Okay, Fehler gefunden: er liegt in der /conlib/local.php

---Originalcode ----

Code: Alles auswählen

 $this->db->query(sprintf("SELECT idfrontenduser, password FROM %s WHERE username = '%s' AND idclient='$client' AND active='1'", 
    						 $this->fe_database_table,
    						 Contenido_Security::escapeDB($username, $this->db) ));
--- ersetzen durch

Code: Alles auswählen

$this->db->query(sprintf("SELECT idfrontenduser, password FROM %s WHERE username = '%s' AND idclient='$client' AND active='1'", 
    						 $this->fe_database_table,
    						 Contenido_Security::escapeDB(urlencode($username), $this->db) ));
Das fehlende "urlencode" aus der 4.8.6 führt zur NICHT-Rückumwandlung der Sonderzeichen.

timo.trautmann_4fb
Beiträge: 472
Registriert: Di 15. Apr 2008, 15:57
Wohnort: Michelstadt
Kontaktdaten:

Beitrag von timo.trautmann_4fb » Do 28. Aug 2008, 09:59

Verbesserung angenommen. Checkin.

Gesperrt