Der_Schakal 0 Report post Posted February 11, 2004 Hi Leute, ich weiss ich überschütte das Forum mit Fragen *g* Hier noch eine, kann ich bei der registrierung erzwingen das ein Kennwort von dem User der sich registrieren will, mindestens 5 Zeichen (als beispiel) und 2 zahlen enthält ? Wenn ja wie ? Der Schakal Share this post Link to post
Stefan 0 Report post Posted February 11, 2004 Die minimale Länge zu erhöhen ist relaltiv einfach. Datei Register.php if (strlen($len_p) < 3) { $this->show_reg_form('err_no_password'); return; } Bei der anderen Sache muß man wohl ein regulären Ausdruck drüber laufen lassen. Ist auch nicht sonderlich wild, aber dafür hab ich heute keinen Kopf mehr. ;) Share this post Link to post
Der_Schakal 0 Report post Posted February 11, 2004 Ich als absoluter PHP Neuling nerv hier wieder richtig glaub ich Noch eine andere Sache, ich würde gerne auch einstellen das das kennwort UNGLEICH des Benutzernamen ist... Wenns gehen würde und nicht zuviel umstände macht.... Thnx Der Schakal Share this post Link to post
sjenicak 0 Report post Posted February 11, 2004 hallo. nehmen wir an ich erhöhe die passwortlänge von drei auf fünf. hat das dann in irgendeiner weise auswirkungen auf die bestehenden user die vielleicht schon ein passwort mit drei zeichen länge haben? Share this post Link to post
Stefan 0 Report post Posted February 11, 2004 Es hat keine Auswirkungen, da die Änderung nur bei Neuanmeldungen greift. Ggf. muß man für die Routine für Passwortänderung noch etwas anpassen, aber auch da schau ich dann am morgigen Tag mal, nachdem ich die letzte Klausur geschrieben habe. Für das andere, damit Passwort ungleich Benutzername, unterhalb der Stelle, die ich vorhin angegeben habe, folgendes hinzufügen: if ($in_username == $in_password) { $this->show_reg_form('err_no_password'); return; } Share this post Link to post
Der_Schakal 0 Report post Posted February 11, 2004 Boah das ging schnell um so mehr ich mir den PHP code angucke um so mehr fällt mir aus der c++ zeit wieder ein *g* noch ne frage: Wo passe ich den Text an (steht ja noch drin das mindestens 3 zeichen nötig sind) sind jetzt aber mehr. Wo steht sowas ? Der Schakal Share this post Link to post
sjenicak 0 Report post Posted February 11, 2004 für die klausur.....toi, toi, toi stefan. Share this post Link to post
Stefan 0 Report post Posted February 11, 2004 lang_register.php für die klausur.....toi, toi, toi stefan. Danke. :) Share this post Link to post
Der_Schakal 0 Report post Posted February 11, 2004 Hab ich ja völlig vergessen. Auch viel Glück von mir und danke für die Tips.... Umso mehr ich mich mit dem Board beschäftige um so besser gefällt es mir... Der Schakal Share this post Link to post
sjenicak 0 Report post Posted February 11, 2004 (edited) vielleicht noch wichtig: lang_register in allen sprachdateien anpassen. Edited February 11, 2004 by sjenicak Share this post Link to post
Der_Schakal 0 Report post Posted February 11, 2004 Auch wenn man nur die Deutsche benutzt ? Der Schakal Share this post Link to post
sjenicak 0 Report post Posted February 11, 2004 Auch wenn man nur die Deutsche benutzt ? Der Schakal ich würde alle ändern, die ich auf dem board zur verfügung habe. Share this post Link to post
Stefan 0 Report post Posted February 12, 2004 Okay, hier noch ein einfacher regulärer Ausdruck, um mindestens zwei Zaheln im Passwort zu erzwingen. Kann auch unterhalb der oben angegebene Stelle eingefügt werden. if (preg_match("#\d+\D+\d+#", $in_password)) { $this->show_reg_form('err_no_password'); return; } Mit diesem Ausdruck muß mindestens eine Nichtzahl zwischen den beiden Zaheln stehen. Beispiel: mein22passwort => ungültiges Passwort mein22pass1wort => gültiges Passwort Kannst natürlich auch noch die Fehlermeldung anpassen. Dazu oben aus err_no_password zum Beispiel err_no_valid_passwort machen. Anschließend in der lang_register.php noch folgendes hinzufügen: 'err_no_valid_password' => "Was immer du dem User mitteilen willst", oder bei anderer Arrayschreibweise: $lang['err_no_valid_password'] = "Was immer du dem User mitteilen willst"; Bezüglich der Passwortänderungsroutine muß ich nochmal genau schauen. Share this post Link to post
Der_Schakal 0 Report post Posted February 12, 2004 (edited) Hi Stefan dank dir für den Code.. Wie muss der aussehen wenns egal ist ob zei zahlen aufeinander folgen ? Ich möchte nur das zwei Zahlen vorhanden sein müssen.... Edited February 12, 2004 by Der_Schakal Share this post Link to post
Stefan 0 Report post Posted February 12, 2004 Du kannst Fragen stellen. Eine einfache Lösung: preg_match_all("#(\d{1})#", $in_password, $match); if (count($match[0]) < 2) { $this->show_reg_form('err_no_password'); return; } Sollte funktionieren. :) Share this post Link to post
Der_Schakal 0 Report post Posted February 13, 2004 So ich hatte erst heute Zeit gehabt es einzubauen. Es läuft jetzt sogar mit der Ausgabe der Fehlermeldung. Dank dir... Der Schakal Share this post Link to post
Andy 0 Report post Posted February 13, 2004 Hallo Der_Schakal ich freue mich, daß es Funktioniert, noch mehr würde ich mich in Zukunft darüber freuen, wenn Du den erledigt / nicht erledigt Button benutzen würdest, und das Thema eben für erledigt markierst, damit man weiß das eben die Anfrage in dem Thema erledigt ist Ich habe es in diesem Fall dann nochmal für Dich erledigt ! Danke für die Kooperation :D Share this post Link to post
Dirk 0 Report post Posted May 14, 2005 Hallo Zusammen! Das hier beschriebene sicher machen des Passwortes gilt doch nur für das Passwort welches man direkt bei der Registrierung nutzt, oder? Ich würde das ganze gerne auch dann abfragen lassen, wenn jemand sein PW ändert. Also Mindestlänge, ungleich Benutzername und mind. eine Zahl im Passwort. Vielen Dank und Grüße, Dirk Share this post Link to post
Stefan 0 Report post Posted May 14, 2005 Das hier beschriebene sicher machen des Passwortes gilt doch nur für das Passwort welches man direkt bei der Registrierung nutzt, oder? Ja. Ich würde das ganze gerne auch dann abfragen lassen, wenn jemand sein PW ändert. Also Mindestlänge, ungleich Benutzername und mind. eine Zahl im Passwort. Kein Problem. Datei UserCP.php Suchen: if ($new_pass != $chk_pass) { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'pass_no_match' ) ); } //-------------------------------------------- if (md5($cur_pass) != $this->member['password']) { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'wrong_pass' ) ); } //-------------------------------------------- Darunter einfügen: if (strlen($new_pass) < 3) { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'wrong_pass_format' ) ); } if (strtolower($ibforums->member['name']) == strtolower($new_pass)) { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'wrong_pass_format' ) ); } preg_match_all("#(\d{1})#", $new_pass, $match); if (count($match[0]) < 1) { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'wrong_pass_format' ) ); } Datei lang_error.php (von jedem Sprachpaket) Hinzufügen: $lang['wrong_pass_format'] = "Das neue Passwort entspricht leider nicht den gewünschten Sicherheitsbestimmungen. Das Passwort muß mindestens 4 Zeichen lang sein, eine Zahl enthalten und darf nicht der Benutzername sein."; Bzw. bei anderer Arrayschreibweise: 'wrong_pass_format' => "Das neue Passwort entspricht leider nicht den gewünschten Sicherheitsbestimmungen. Das Passwort muß mindestens 4 Zeichen lang sein, eine Zahl enthalten und darf nicht der Benutzername sein.", Sollte soweit funktionieren. :) Share this post Link to post
Dirk 0 Report post Posted May 14, 2005 Wunderbar, vielen Dank Stefan! Hast du auch noch einen Tipp, wie man bestimmte Benutzergruppen dazu überreden kann oder besser dazu "zwingen" kann sich ein neues Passwort zu suchen was den neuen Sicherheitslinien entspricht? Grüße, Dirk Share this post Link to post
Modula 0 Report post Posted May 16, 2005 Unschön, aber machbar: setzt über eine SQL Abfrage (oder manuell im ACP) für jeden Benutzer ein zufälliges Passwort welches dieser nicht kennt. Jetzt muss dieser sein Passwort anfordern und wenn er mit diesem nicht zufrieden ist (ja, es besteht - rein rechnerisch - die Möglichkeit, dass das neu erzeugte Passwort mit dem Benutzernamen übereinstimmt) muss er dann sein Passwort ändern. Share this post Link to post