PHP :: Aufgabe #61 :: Lösung #1
2 Lösungen

#61
Passwortgenerator mit Parametern
Anfänger - PHP
von pocki
- 27.11.2014 um 18:11 Uhr
Erstelle ein Programm/Funktion welche/s ein zufälliges Passwort erzeugt.
Als Parameter soll die Länge sowie die Art der darin vorkommenden Zeichen übergeben werden können.
Zur Auswahl sollen stehen: Kleinbuchstaben, Großbuchstaben, Zahlen und Sonderzeichen.
Jede beliebige Kombination der Parameter soll möglich sein.
Als Parameter soll die Länge sowie die Art der darin vorkommenden Zeichen übergeben werden können.
Zur Auswahl sollen stehen: Kleinbuchstaben, Großbuchstaben, Zahlen und Sonderzeichen.
Jede beliebige Kombination der Parameter soll möglich sein.
#1

von Jinnai (340 Punkte)
- 22.11.2015 um 01:09 Uhr
Anmerkung: Den switch-Block könnte man genauso auch mit if-elseif Lösen.
PHP-Code
HTML-Code

<?php function gen_pw($laenge, $art) { function generiere($laenge, $chars) { $passwd = ''; for($i = 0; $i < $laenge; $i++) { $passwd .= $chars{mt_rand(0,strlen($chars)-1)}; } echo $passwd; } switch($art) { case 'p101': $chars = "abcdefghijkmnpqrstuvwxyz"; generiere($laenge, $chars); break; case 'p102': $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; generiere($laenge, $chars); break; case 'p103': $chars = "0123456789"; generiere($laenge, $chars); break; case 'p104': $chars = "@+*/[]}{%&\\"; generiere($laenge, $chars); break; case 'p105': $chars = "abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; generiere($laenge, $chars); break; case 'p106': $chars = "abcdefghijkmnpqrstuvwxyz0123456789"; generiere($laenge, $chars); break; case 'p107': $chars = "abcdefghijkmnpqrstuvwxyz@+*/[]}{%&\\"; generiere($laenge, $chars); break; case 'p108': $chars = "abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; generiere($laenge, $chars); break; case 'p109': $chars = "abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@+*/[]}{%&\\"; generiere($laenge, $chars); break; case 'p110': $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; generiere($laenge, $chars); break; case 'p111': $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ@+*/[]}{%&\\"; generiere($laenge, $chars); break; case 'p112': $chars = "0123456789@+*/[]}{%&\\"; generiere($laenge, $chars); break; default: echo 'Es ist ein Fehler aufgetreten.'; } } if(isset($_POST['submit'])) { if(isset($_POST['laenge']) && is_numeric($_POST['laenge'])) { if(isset($_POST['pwtype']) && $_POST['pwtype'] != 'p100') { gen_pw($_POST['laenge'], $_POST['pwtype']); }else { echo 'Bitte wähle die Art des zu generierenden Passworts aus.'; } }else { echo 'Bitte trage eine gültige länge ein.'; } } ?>

<html> <form action="pwgenerator.php" method="POST"> Länge des Passworts: <input type="text" name="laenge"><br /> Art des Passworts: <select name="pwtype" size="1"> <option value="p100"></option> <option value="p101">Kleinbuchstaben</option> <option value="p102">Großbuchstaben</option> <option value="p103">Zahlen</option> <option value="p104">Sonderzeichen</option> <option value="p105">Kleinbuchstaben & Großbuchstaben</option> <option value="p106">Kleinbuchstaben & Zahlen</option> <option value="p107">Kleinbuchstaben & Sonderzeichen</option> <option value="p108">Kleinbuchstaben & Großbuchstaben & Zahlen</option> <option value="p109">Kleinbuchstaben & Großbuchstaben & Sonderzeichen</option> <option value="p110">Großbuchstaben & Zahlen</option> <option value="p111">Großbuchstaben & Sonderzeichen</option> <option value="p112">Zaehlen & Sonderzeichen</option> </select><br /> <input type="submit" name="submit" value="Generieren"> </form> </html>
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1