reguläre ausdrücke password vergleich

pchilfe

Erfahrenes Mitglied
Liebe Freunde,

Kann man mit regulären Ausdrücke Password und Password wiederholung vergleichen, ob beide identisch sind, wenn ja , dann wie mache ich das?

Ich habe folgende Muster für Password-Eingabe geschrieben:

$rules['Password1'] = array(
$rule_required => 'Die Angabe vom Password ist pflicht',
'#^.{1,32}$#s' => 'Password darf mindestens 6 und maximal 32 Zeichen lang sein.',
'#^[0-9a-zA-Z-_]*$#' => 'Password darf nur aus Zahlen Buchstaben und - _bestehen.
);

Das gleiche gilt für Password Wiederholung.

$rules['Password2'] = array(
$rule_required => 'Die Angabe vom Password ist pflicht',
'#^.{6,32}$#s' => 'Password darf mindestens 6 und maximal 32 Zeichen lang sein.',
'#^[0-9a-zA-Z-_]*$#' => 'Password darf nur aus Zahlen Buchstaben und - _bestehen.
);

jetzt möchte ich mit einem regulären Ausdruck vergleichen, ob Password1 = Password2

ich weiß aber nicht wie ich beide passwörter mit einem Regulären ausdruck vergleiche.

ich kann beide natürlich in PHP vergleichen, aber ich möchte es auspropieren mit einem regulärem Ausdruck.

Kann jemand mir hilfen?

Vielen Dank im Voraus
pchilfe :-)
 
vielen Dank Sven,

aber ich möchte nur einen regexp meine Lösung wäre es:

ich schreibe nur eine Regel für die Password-Eingabe wie folgt:

$rules['Password1'] = array(
$rule_required => 'Die Angabe vom Password ist pflicht',
'#^.{1,32}$#s' => 'Password darf mindestens 6 und maximal 32 Zeichen lang sein.',
'#^[0-9a-zA-Z-_]*$#' => 'Password darf nur aus Zahlen Buchstaben und - _bestehen.
);

und dann möchte ich im zweiten Regel für die Password Wiederholung:

$rules['Password2'] = array(
'#^$values[Password1]#' => 'ist nicht gleich Password1',
);

Ich weiss nicht wie ich auf den Wert vom Password1 in einem Regulären Ausdruck zugreife. Daher funktioniert dieser Ausdruck nicht: #^$values[Password1]#'

gibt es dafür eine Möglichtkeit?
 
ja genau ..das ist, was ich will.
ich habe deinen Vorschlag gleich ausprobiert.
leider erkennt der Paser die Variable $values nicht.

Code:
$rules['Password2'] = array(
'#^'.preg_quote($values['Password1']).'#' => 'Password2 gleicht nicht Password1',);

Notice: Undefined variable: values

aber warum nicht? :-(
 
Hallo!

Hmm, warum prüfst Du nicht zuerst einfach nur ob $rules['Password1'] und $rules['Password2'] identsich sind.
Danach dann $rules['Password1'] (oder $rules['Password2']) auf reguläre Ausdrücke prüfen?

PHP:
<?php
if($rules['Password1'] == $rules['Password2']) {
	 // wenn Passwort1 und Passwort2 identisch sind, dann prüfe $rules['Password1'] auf reguläre Ausdrücke
} else {
	 echo "Passwort stimmt nicht überein"; // wenn Passwort1 und Passwort2 nicht identisch sind
}
?>
Schliesslich sollen beide Passwörter ja auch übereinstimmen..... und nicht bloss auf reguläre Ausdrücke überprüft werden.
Und wenn sie identisch sind, dann brauchst Du ja nicht beide Passwörter auf reguläre Ausdrücke überprüfen.

Gruss Dr Dau
 
Liebe Freund,

Vielen Dank für euere Hilfe. Ich habe mein Programm umgeschrieben, um die beide Passwörter einfach zu vergleichen. Leider habe ich es nicht geschaft auch durch Nachschlagen im Bürchern einen Regulären Ausdruck zu formulieren, der den Wert der Variable der ersten Password-Eingabe entält. :-(

Vielen Dank an alle ....
 
Zurück