I have wrote this little script which generates a nice random password. The problem I am having is that when you open the page and select all + copy the text into the clipboard. There is always a space at the end even if I use the trim. Is there anyway to fix this?
Tested using Firefox.
UPDATE: Ok after testing with a jsfiddle example this has nothing to do with PHP because I get the same issue here. This has the same problem of always adding a space at the end.
<?php
function random_readable_pwd($length=10){
// the wordlist from which the password gets generated
// (change them as you like)
$words = 'AbbyMallard,AbigailGabble,AbisMal,Abu,Adella,TheAgent,AgentWendyPleakley,Zini';
// Split by ",":
$words = explode(',', $words);
if (count($words) == 0){ die('Wordlist is empty!'); }
// Add words while password is smaller than the given length
$pwd = '';
while (strlen($pwd) < $length){
$r = mt_rand(0, count($words)-1);
$pwd .= $words[$r];
}
$num = mt_rand(1, 99);
if ($length > 2){
$pwd = substr($pwd,0,$length-strlen($num)).$num;
} else {
$pwd = substr($pwd, 0, $length);
}
$pass_length = strlen($pwd);
$random_position = rand(0,$pass_length);
$syms = "!@#%^*()-?";
$int = rand(0,9);
$rand_char = $syms[$int];
$pwd = substr_replace($pwd, $rand_char, $random_position, 0);
return $pwd;
}
?>
<html><head><title>Password generator</title></head>
<body><?php echo random_readable_pwd(10); ?></body>
</html>
It doesn’t matter what do you server-side. In the end, you get this:
(I’ve added a DOCTYPE to avoid ambiguities.) If you inspect the HTML as interpreted by Firefox (you’ll need Firebug for that) you’ll find this:
So need to generate a different HTML markup. One possibility: