• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Hashs und so...

Hab' gegoogelt, doch ich finde keine passende Antwort, die Magic Quotes abzuschalten.
Das kann ich kaum glauben. Treffer Nr. 1 zum oben verwendeten Befehl ist das PHP Manual, dort (und auf den verlinkten Seiten, die Du ohne extra Aufforderung auch gelesen haben solltest) steht genau beschrieben, was das ist, was es macht und wie man das aus- oder anschaltet.
 
Es ist jetzt abgeschaltet.
Doch der Login klappt immernoch nicht.
Ich habe keinen Plan mehr, woran das noch liegen könnte.
 
Doch der Login klappt immernoch nicht.
Das war zu erwarten, aber was Du jetzt von uns willst, ist unklar.

Wie stellst Du Dir vor, dass wir Dir helfen, wenn wir nur oberflächliche Informationen von Dir bekommen, und Du nicht wirklich auf die Vorschläge und Nachfragen eingehst?

Es wurden Dir bereits Möglichkeiten genannt, die Dir helfen sollen das Problem einzugrenzen und uns Informationen über die tatsächliche Ursache und das Ausmaß des Problems geben sollen. Es mag sein, dass Du den Sinn dahinter nicht verstehst oder worauf wir hinauswollen, aber dann kannst Du ja konkret nachfragen, was wir meinen oder was Du nicht verstanden hast. Oder es einfach mal ausprobieren und von selbst drauf kommen, denn prinzipiell funktioniert eine solche Abfrage - auch wenn Deine Datenbank von einem Teenager gehackt werden kann.

Mein Tipp ist immer noch, dass Du zwei verschiedene Kodierungen auf der Anmelde- und der Loginseite verwendest.
 
Okay.
Wie soll ich das machen, mit den zwei verschiedenen Kodierungen? :)

Mein Script sieht immernoch so aus, wie ich es im Forum das letzte Mal genannt habe.
Bloß, dass die Magic Quotes jetzt aus sind.
 
Zuletzt bearbeitet:
du sollst das nicht machen, Albu vermutet, dass es zwei verschiedenen Kodierungen sind und damit die Felehrquelle ist.
 
Ich verschlüssele auf beiden Seiten (in beiden Scripten) die Passwörter mit sha1().
Also ist das doch kein Fehler, oder doch?
 
Mit Kodierung ist hier (wahrscheinlich) nicht der Verschlüsselungsalgorithmus sondern das Character Encoding gemeint wie z.B. utf8
 
Ich verschlüssele auf beiden Seiten (in beiden Scripten) die Passwörter mit sha1().
Aktuell ist es doch der Benutzername, der Probleme macht, oder? Und der wird eben nicht mit SHA1 "verschlüsselt", wie kommst Du also jetzt wieder auf die Passwörter?

Also ist das doch kein Fehler, oder doch?
Merkst Du eigentlich, dass wir dem Fehler null näher kommen? Du musst schon mitarbeiten und vor allen Dingen mitdenken, denn Du musst uns die Informationen geben, die uns überhaupt in die Lage versetzen Dir zu helfen. Und da sieht es im Moment ziemlich mau aus.
Wie sieht es denn jetzt z.B. damit aus: http://forum.jswelt.de/serverseitige-programmierung/54914-hashs-so-2.html#post348284
 
Du vergleichst die falschen nicknames.
In die db trägst du ein (registrierung): löl"'
zum vergleich (login) fragst du nach htmlspecialchars(löl"') <- gibt zurück: löl"'
da löl"' != löl"' ist findet er keinen passenden datensatz => login scheitert

Oben drauf kommt eventuell das von Albu angesprochene charset problem, aber die offensichtliche ursache ist dein falsches htmlspecialchars()
(und da du den usernamen für die query aktuell nicht ordentlich absicherst ist der login außerdem auch noch über eine sql injection angreifbar)
 
Zuletzt bearbeitet:
@skooli:
Im Login wird ja löl"' mit dem hier verglichen:
$nick = trim(mysql_real_escape_string($_POST['nick']));
Und bei der Registrierung passiert ja das Selbe mit dem Nickname.
Was mache ich denn da falsch? D:

Ich habe da ja kein htmlspecialchars() drin.
 
Zuletzt bearbeitet:
Was mache ich denn da falsch?
Dein Problem löst sich nicht, indem Du diese Frage noch 500 mal stellst. _Du_ musst aktiv werden, je früher Du damit anfängst, desto eher ist das Problem gelöst.

Und in Deinem Ursprungscode ist der Vergleich so wie skooli sagt, und da Du Dich weigerst uns auf dem Laufenden zu halten, was Deine aktuellen Fortschritte, Experimente und Beobachtungen angeht, ist das der letzte Stand, auf dem wir unsere Mutmaßungen und Deutungen treffen können.
 
Login:
PHP:
<?php
	if(isset($_POST['submit']) && empty($_POST['nick']) && empty($_POST['pw'])) {
	echo "Bitte alle Felder ausfüllen!";
		} else if (isset($_POST['submit']) && isset($_POST['nick']) && isset($_POST['pw'])) {
		$nick = trim(mysql_real_escape_string($_POST['nick']));
		$password = sha1(trim($_POST['pw']));
		$sql = "SELECT * FROM userstabelle WHERE username = '".$nick."' AND password = '".$password."';";
		$result = mysql_query($sql) or die(mysql_error());
		$row = mysql_fetch_assoc($result);
			if ($row["username"] == $nick && $row["password"] == $password) {
			echo 'Login erfolgreich.';
			}
		} else {
		echo "Du hast falsche Daten angegeben!";
		}
	}
?>
Das ist jetzt mein Loginscript.
 
OK - und jetzt probier das Ganze doch mal mit einem ganz einfachen Benutzernamen (z.b. abc) und mach' den dann immer komplizierter. Sag' uns, an welchem Punkt es nicht mehr funktioniert.
 
so, ich habe immer wieder ein Zeichen hinten dran gemacht, gescheitert ist es schon bei:
abcö<>&µ'
Also bei: '
 
Zurück
Oben