如何获得与输入数字一样多的结果?

时间:2019-02-27 13:40:05

标签: php

我有一个密码生成器,您可以使用它选择密码的长度以及密码应包含的字符。但是我希望它显示的密码与我在“金额”表中输入的数字一样多,而我却无法使其看起来有效。有人知道最好的方法吗?

PHP

<?php

$small = "abcdefghijklmnopqrstuvwxyz";
$big = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$num = "0123456789";
$char = ".-+=_,!@$#*%<>[]{}";
$chars = "";
$val = $_POST['length'];

function generatePassword($length, $chars){
    $charsArray = str_split($chars);
    $password = "";
    for($i = 0; $i < $length; $i++){
        shuffle($charsArray);
        $password .= $charsArray[0];
    }

    echo "Wachtwoord:<br><br><textarea cols='50' rows='10' disabled>$password</textarea><br><br>";


}

if(isset($_POST['generate'])){

    if(isset($_POST['char'])){
        $chars .= $char;
    }

    if(isset($_POST['num'])){
        $chars .= $num;
    }

    if(isset($_POST['small'])){
        $chars .= $small;
    }

    if(isset($_POST['big'])){
        $chars .= $big;
    }

    generatePassword(htmlspecialchars($_POST['length']), $chars);

}


?>

和HTML

<form method="post">
    <label>Aantal:</label>
    <input type="number" name="amount" value="<?=$_POST['amount']?>" required>
    <br><br>
    <label>Lengte:</label>
    <input type="number" name="length" value="<?=$_POST['length']?>" required>
    <br><br>
    <label>Karakters</label>
    <input type="checkbox" name="char">(@#$%)
    <br><br>
    <label>Getallen:</label>
    <input type="checkbox" name="num">(123456)
    <br><br>
    <label>Kleine letters:</label>
    <input type="checkbox" name="small">(abcdefg)
    <br><br>
    <label>Hoofdletters:</label>
    <input type="checkbox" name="big">(ABCDEFG)
    <br><br>
    <input type="submit" value="Genereer wachtwoord" name="generate">
</form>

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用amount进行循环?

<?php

$small = "abcdefghijklmnopqrstuvwxyz";
$big = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$num = "0123456789";
$char = ".-+=_,!@$#*%<>[]{}";
$chars = "";
$val = $_POST['length'];

function generatePassword($length, $chars){
    $charsArray = str_split($chars);
    $password = "";
    for($i = 0; $i < $length; $i++){
        shuffle($charsArray);
        $password .= $charsArray[0];
    }

    echo "Wachtwoord:<br><br><textarea cols='50' rows='10' disabled>$password</textarea><br><br>";


}

if(isset($_POST['generate'])){

    if(isset($_POST['char'])){
        $chars .= $char;
    }

    if(isset($_POST['num'])){
        $chars .= $num;
    }

    if(isset($_POST['small'])){
        $chars .= $small;
    }

    if(isset($_POST['big'])){
        $chars .= $big;
    }

    $amount = $_POST['amount'];
    for($i = 0; $i < $amount; $i++) {
        generatePassword(htmlspecialchars($_POST['length']), $chars);
    }
}


?>