Почему-то выдает такую ошибку в выведенном пароле на месте неизвестного символа.
Notice: Uninitialized string offset: 62 in /home/unibix/www/test1.loc/3 Password generator/Password generator.php on line 44
Выдвает ошибку при генерации пароля, в котором используются буквы латинского алфавита и/или буквы и символы.
Вот код: Спойлер (Отобразить) CODE ( htmlphp):
скопировать код в буфер обмена
<html> <head> <title></title> <style> p { word-wrap: break-word; } </style> </head> <body> <form method="post" action="Password generator.php"> <p>Введите длину пароля:</p> <input type="text" name="passwordLength"> <p>Пароль будет составлен из:</p> </p><input type="radio" name="numbers">Цифр <input type="radio" name="numbersAndWords">Цифр и букв латинского алфавита <input type="radio" name="anyNumbersAndWords">Любых символов</p> <input type="submit" value="Submit"> </form> <p> <?php if (!empty($_POST["passwordLength"])) { if (substr($_POST["passwordLength"], -1) == 1 && substr($_POST["passwordLength"], -2) != 11) { echo "<p>Длина пароля: " . $_POST["passwordLength"] . " символ.</p>"; } elseif ($_POST["passwordLength"] <= 4 || substr($_POST["passwordLength"], -2) == 02 || substr($_POST["passwordLength"], -1) == 03 || substr($_POST["passwordLength"], -1) == 04) { echo "<p>Длина пароля: " . $_POST["passwordLength"] . " символа.</p>"; } else { echo "<p>Длина пароля: " . $_POST["passwordLength"] . " символов.</p>"; } if (!empty($_POST["numbers"])) { $numbersLen = 1; while ($numbersLen <= $_POST["passwordLength"]) { $numbersLen = $numbersLen + 1; } } elseif (!empty($_POST["numbersAndWords"])) { $characters = "qazxswedcvfrtgbnhyujmkiolp1234567890QAZXSWEDCVFRTGBNHYUJMKIOLP"; $numbersAndWordsLen = 1; while($numbersAndWordsLen <= $_POST["passwordLength"]) { $numbersAndWordsLen = $numbersAndWordsLen + 1; $random = rand(0, $charactersLen); echo $characters[$random]; ; } } elseif (!empty($_POST["anyNumbersAndWords"])) { $characters = 'qazxswedcvfrtgbnhyujmkiolp1234567890QAZXSWEDCVFRTGBNHYUJMKIOLP.,{}()[]!@#$%^&*-=_+/\|"\''; $charactersLen = strlen($characters); $anyNumbersAndWordsLen = 1; while($anyNumbersAndWordsLen <= $_POST["passwordLength"]) { $anyNumbersAndWordsLen = $anyNumbersAndWordsLen + 1; echo $characters[mt_rand(0, $charactersLen)]; ; } } } ?> </p> </body> </html>
|