Ich bastel zusammen mit einer Freundin an einer Seite, die eine eigene Welt darstellen soll (http://www.rhejvandar.de). Da man dort auch verschiedene Interaktionen machen kann, hat sie vor einier Zeit ein Login-System gebastelt. Dabei haben wir irgendwann festgestellt, dass man sich mit Namen, die ein Apostroph enthalten (also zum Beispiel "Ley'ja"), nicht registrieren kann.
Mit der Funktion "addslashes()" haben wir das soweit alles hinbekommen, registrieren und einloggen geht inzwischen.
Es tritt aber ein anderes kleines Problem auf. Und war sieht das folgendermaßen aus. Wenn man sich anmelden möchte, gibt man seinen Benutzernamen ein und sein Passwort. Dann wird überprüft, ob das alles so stimmt, wies sein soll. Wenn der Benutzername existiert, das Passwort aber falsch ist, wird die Seite neu geladen und die Meldung kommt, dass das Passwort falsch ist. Dann klickt man auf einen Button, der einen dann wieder zurück zum Einlog-Feld bringt. Dort soll dann in dem Feld für Benutzername der Name schon drin stehen, so dass man nur das Passwort neu eingeben muss. Klappt auch, bei normalen Namen.
Bei den Namen mit einem Apostroph, zum Beispiel "Ley'ja", steht in dem Feld für Benutzername nur "Ley" (bzw. "Ley\", falls vorher an einer Stelle noch die addslashes() hinzugefügt wurde), also alles ab dem Apostroph wird abgeschnitten.
Das ganze funktioniert irgendwie so, dass die Inhalte der Post-Variable für den Benutzernamen übergeben werden. Bis zur Zwischenseite klappt das auch alles, hab mir da die Variable ausgeben lassen und da ist der Inhalt noch komplett. Wenn man sich dann allerdings erneut weiterleiten lässt, ist der Rest weg.
Der Teil des Skriptes sieht folgendermaßen aus (also die Zwischenseite, wo noch alles in Ordnung ist und von der aus man dann zum Einlogg-Feld zurückkommt).
Kann das irgendwie an den verstckten Input-Feldern liegen? Oder woran kann es sonst liegen, dass er auf einmal den Inhalt der Post-Variablen verändert? Hat jemand ne Idee? Oder muss ich noch irgendwelchen zusätzlichen Code posten?
Wäre schön, wenn mir jemand helfen könnte
Mit der Funktion "addslashes()" haben wir das soweit alles hinbekommen, registrieren und einloggen geht inzwischen.
Es tritt aber ein anderes kleines Problem auf. Und war sieht das folgendermaßen aus. Wenn man sich anmelden möchte, gibt man seinen Benutzernamen ein und sein Passwort. Dann wird überprüft, ob das alles so stimmt, wies sein soll. Wenn der Benutzername existiert, das Passwort aber falsch ist, wird die Seite neu geladen und die Meldung kommt, dass das Passwort falsch ist. Dann klickt man auf einen Button, der einen dann wieder zurück zum Einlog-Feld bringt. Dort soll dann in dem Feld für Benutzername der Name schon drin stehen, so dass man nur das Passwort neu eingeben muss. Klappt auch, bei normalen Namen.
Bei den Namen mit einem Apostroph, zum Beispiel "Ley'ja", steht in dem Feld für Benutzername nur "Ley" (bzw. "Ley\", falls vorher an einer Stelle noch die addslashes() hinzugefügt wurde), also alles ab dem Apostroph wird abgeschnitten.
Das ganze funktioniert irgendwie so, dass die Inhalte der Post-Variable für den Benutzernamen übergeben werden. Bis zur Zwischenseite klappt das auch alles, hab mir da die Variable ausgeben lassen und da ist der Inhalt noch komplett. Wenn man sich dann allerdings erneut weiterleiten lässt, ist der Rest weg.
Der Teil des Skriptes sieht folgendermaßen aus (also die Zwischenseite, wo noch alles in Ordnung ist und von der aus man dann zum Einlogg-Feld zurückkommt).
PHP:
echo "<form action='?logo=album&site=album/album' method='post'>\n";
echo "<div align='center'>\n";
echo "Das war das falsche Zauberwort!<br /><br />\n";
echo "<input type='hidden' name='username' value='".$_POST['username']."'>\n";
echo "<input type='hidden' name='password' value='".$_POST['password']."'>\n";
echo "<input type='submit' name='zurueck' value='neuer Versuch' class='albbutton'><br/>\n";
echo "</div>\n";
echo "</form>\n";
Wäre schön, wenn mir jemand helfen könnte