<?php
/*------------------------------------------------
* Gerador de senhas 1.0
*      Por Luiz Gustavo Cardoso Ribeiro (VenoX)
*------------------------------------------------
*     venox@bol.com.br / www.lworks.host.sk
*------------------------------------------------
*     Contribui��o de Adilson de Almeida Pedro
*     www.afaconsultoria.com.br
*------------------------------------------------
*/
function gerar_senha($target) {
    $senha = "";
    $consoantes = "bcdfghjklmnpqrstvwxyzbcdfghjklmnpqrstvwxyz";
    $vogais = "aeiou";
    $numeros = "1234567890";

    $a = strlen($consoantes)-1;
    $b = strlen($vogais)-1;
    $c = strlen($numeros)-1;

    for($x=0;$x<=strlen($target)-1;$x++)
    {
        if(substr($target,$x,1) == "@") {
            $rand = mt_rand(0,$c);
            $senha .= substr($numeros,$rand,1);
        } elseif(substr($target,$x,1) == "%") {
            $rand = mt_rand(0,$a);
            $senha .= substr($consoantes,$rand,1);
        } elseif(substr($target,$x,1) == "&") {
            $rand = mt_rand(0,$b);
            $senha .= substr($vogais,$rand,1);
        } else {
            die("<b>Erro!</b><br><i>$target</i> � uma express�o inv�lida!<br><i>".substr($target,$x,1)."</i> � um caract�r inv�lido.<br>");
        }
    }
    return($senha);
}
?>
<TABLE>
<form action="<?= $PHP_SELF ?>" method="post">
<TR>
    <TD>express�o:</TD>
    <TD><INPUT TYPE="text" NAME="template"></TD>
</TR>
<TR>
    <TD COLSPAN="2">@ - n�mero<Br>& - vogal<Br>% - consoante</TD>
</TR>
<TR>
    <TD></TD>
    <TD><div align="right"><INPUT TYPE="submit" name="action" VALUE="gerar"></div></TD>
</TR>
</form>
</TABLE>
<?php
if(isset($_POST["action"])) {
    echo "<br>senha gerada:<Br>".gerar_senha($_POST["template"]);
}
?>