Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo zusammen,

ich hab ein kniffliges Problem. Ich habe einen passwortgeschützten Bereich auf einer Homepage. Benutzer müssen sich anmelden um dort zugang zu bekommen. Jetzt gibt es Benutzer (z.B. aus Polen, Russland usw.) die habe Sonderzeichen in den Namen. Wenn ich diese jetzt per Insert in ein Datenbankfeld schreibe, dann kommen die natürlich "verstümmelt" an. Das ist soweit kein Problem, wenn ich die Auslese und mit der richtigen Content-Type Codierung versehe (z.B. meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"), dann sieht das richtig aus.

Mein Problem ist jetzt aber mein Login-Script, Dort mache ich eine Abfrage, ob der Benutzer mit dem Benutzername und Passwort existiert. D.h.

$query = "select * from user where strPassword = '$Password' AND strUserName = '$UserId'";

In $UserId steht aber natürlich der Benutzername so drin, dass z.B. osteuropäische Sonderzeichen drin sind. Wenn ich dann mein Query ausführe bekomme ich kein Ergebniss, obwohl der Benutzer in der Datenbank drin ist!

Weiss einer eine Lösung dafür??

Geschrieben

Nimm deren Emailadresse als Benutzername (wie bei Amazon), dann hast du die Probleme nicht. Emailadressen dürfen ja diese Zeichen nicht enthalten.

Beim PW könntest du übrigens das gleiche Problem bekommen. Es sei denn du wandelst es vor dem Eintrag in einen Hash-Wert um und vergleichst das später nur noch.

Geschrieben

Keine schlechte Idee, aber ich möchte auch die möglichkeit, dass Benutzer sich im Nachhinein ihre Zugangsdaten zuschicken lassen können, wenn ich das PW nur als Hashwert abspeichere, dann kann ich das ja nicht oder?

Timo

Geschrieben

Ist ja kein Problem, wenn jemand sein PW vergessen hat mach folgendes:

Trag ein Zufalls-PW als Hash in die DB ein und schick ihm das neue PW zu. Später kann er das ja ändern.

Geschrieben

Ich bin vielleicht ein bischen spät dran, aber gebe trotzdem noch meinen Senf dazu.

1. Probleme beim Eintragen von String mit Sonderzeichen können mittels einer PHP-Funktion präpariert werden, nennt sich (addslashes()) - damit werden die Sonderzeichen als Escape-Sequenzen codiert.

2. Schon mal auf die Idee gekommen als Encoding UTF-8 zu nehmen?

3. Die anderen Ansätze sind auf jeden Fall eine Alternative!

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...