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