2012-01-23 4 views
3

素敵なランダムパスワードを生成するこの小さなスクリプトを書いています。私が抱えている問題は、ページを開いてすべてを選択すると、テキストをクリップボードにコピーすることです。私がトリムを使用しても、最後には常にスペースがあります。とにかくこれを修正するには?すべてを選択すると、最後にスペースがあります

Firefoxでテスト済みです。

更新:jsfiddleの例でテストした後、私はここで同じ問題が発生するため、これはPHPとは関係ありません。これには、常に最後にスペースを追加するという同じ問題があります。

<?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 = "[email protected]#%^*()-?"; 
    $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> 
+1

トリムはありません。また、HTMLコードが出力後に空白を追加しないようにしてください(ブラウザー、クリップボード、貼り付けるテキストエディターによって異なる場合があります)。 – hakre

答えて

2

サーバー側では問題ありません。最後に、あなたはこれを取得:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head><title></title> 
</head> 
<body>foo</body> 
</html> 

(。私はあいまいさを避けるために、DOCTYPEを追加しました)あなたは、Firefoxでを解釈 としてHTMLを検査した場合(あなたはそのためのFirebugをする必要があります)あなたはよこれを見つける:

<body>foo </body> 

別のHTMLマークアップを生成する必要があります。 1つの可能性:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head><title></title> 
</head> 
<body> 
    <p>foo</p> 
</body> 
</html> 
+0

私は自分自身に迷惑をかけるので、これは簡単に修正できました。 –

+0

もう1つの解決方法は、終了後に空白がないことを確認することでした。したがって、あなたのソースが '?>'で終わり、返品がない場合、問題は表示されませんでした。 –