[PHP] Formularfeld ändern mit min 6 Zeichen

scaleodisc

Well-known member
ID: 189440
L
27 April 2006
391
18
Hallo!

Folgendes Problem: Ich möchte, dass ich ein Passwort in meiner Datenbank über ein Formularfeld ändern kann. Dieses Passwort muss aber min. 6 Zeichen haben. Zahlen und Buchstaben gemischt!!!

Folgendes habe ich programmiert:

PHP:
<?php

include('db.php');

$id = $HTTP_POST_VARS["id"];
$passwort = $HTTP_POST_VARS["passwort"];

if (empty($passwort) or ($passwort) > 6)
{
echo "Bitte geben Sie ein neues Passwort mit min. 6 Zeichen ein!<br>";
}
else
{

$aendern = "UPDATE Anmeldung Set passwort = '$passwort' WHERE id = '$id'";
$update = mysql_query($aendern);

echo "Passwort erfolreich geändert!";
}
?>

Das will aber nicht funktionieren! Wenn ich nichts eingeben ins Formularfeld Passwort, dann wird das erste Echo ausgegeben. Gebe ich Zahlen ein z.B. 123456789 dann kommt aber ebenfalls das erste Echo!

Gebe ich aber Buchstaben ein wie z.B. abc dann wird das Passwort geändert!
Also bei keine Eingabe oder einem Zahlenwert egal wie hoch, wird das Passwort nicht geändert! Bei einem Buchstabenwert egal wie hoch wird das Passwort geändert!

Ich mache noch nicht so lange PHP. Wer kann mir da helfen?

Vielen dank und frohe Weihnachten euch allen :)
Wer kann mir da helfen?
 
Hoho... Nimm dieses IF:
PHP:
if (empty($passwort) OR strlen($passwort) == 6) 
{ 
echo "Bitte geben Sie ein neues Passwort mit min. 6 Zeichen ein!<br>"; 
}
PFUUIIII!!!!!!!
Wer $HTTP_POST_VARS verwendet ist - sorry: Nicht im Stande, ein richtiges PHP Buch zu kaufen oder liest die falschen Seiten. Nimm lieber $_POST, dann gefällts auch jedem ;)
 
Zuletzt bearbeitet:
Hoho... Nimm dieses IF:
PHP:
if (empty($passwort) OR strlen($passwort) == 6) 
{ 
echo "Bitte geben Sie ein neues Passwort mit min. 6 Zeichen ein!<br>"; 
}

Er will doch, wenn das Passwort weniger als 6 Stellen hat, dass das erste Echo kommt.
Also müsste es doch so heißen:
PHP:
if (empty($passwort) OR strlen($passwort) < 6) 
{ 
echo "Bitte geben Sie ein neues Passwort mit min. 6 Zeichen ein!<br>"; 
}

Renegade
 
strlen stimmt. Vielen dank!
Manchmal macht PHP mich fertig :ugly:

Frohes Fest!

Renegade stimmt. Danke dir :)
 
Zuletzt bearbeitet von einem Moderator:
Eventuell wäre es auch sinnvoll strlen(trim($string)) zu verwenden!

trim -- Entfernt Whitespaces (oder andere Zeichen) am Anfang und Ende eines Strings​
 
Ein Passwort, das aus Whitespaces besteht scheint in meinen Augen aber irgendwie nicht sonderlich sinnvoll.
Deswegen kannst du trotzdem nicht jemanden, der ein Passwort aus 7 Stellen (z.B. (Hex) 20 4F 3D 56 C4 DC 20) eingibt, ne Fehlermeldung hinknallen, dass er doch mindestens 6 Zeichen eingeben soll.
Die Seite hätte ich das letzte Mal besucht, die das mit mir macht :evil: