adenison 0 Denunciar post Postado Abril 30, 2010 Boa tarde amigos, Estou me aventurando na linguagem PHP e estou tendo algumas dificuldade no meu codigo... Dentro do formulario de cadastro que criei, gero de forma randomica um protocolo, pois não minha falta de experiencia, não me permitiu exibir como protocolo o valor do campo ID da tabela que é incrementado automaticamente. Mais o problema é o seguinte: function makeRandomPassword(){ $salt = "0123456789"; srand((double)microtime()*1000000); $i = 0; while($i <= 7){ $num = rand() % 33; $tmp = substr($salt, $num, 1); $pass = $pass . $tmp + 10; $i++; } return $pass; } $numero_randomico = makeRandomPassword(); $protocolo = ($numero_randomico); Mais ele esta gerando constantemente numero iguais... É possivel impedir que seja gerado numero iguail com tanta frequencia? Agradeço a ajuda de todos. Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Abril 30, 2010 Para gerar um ID único utilize a função uniqid(). Exemplo: $id = md5(uniqid(rand(), true)); Um abraço! Compartilhar este post Link para o post Compartilhar em outros sites
adenison 0 Denunciar post Postado Abril 30, 2010 Muito obrigado.. Então minha função ficaria desta forma? function makeRandomPassword(){ $i = 0; $salt = "0123456789"; srand((double)microtime()*1000000); while($i <= 10){ $num = md5(uniqid(rand(), true)); $tmp = substr($salt, $num, 1); $pass = $pass . $tmp + 10; $i++; } return $pass; } $numero_randomico = makeRandomPassword(); $protocolo = ($numero_randomico); Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Abril 30, 2010 Não é necessário usar uma função, você pode usar direto em seu formulário. Por exemplo: <?=md5(uniqid(rand(), true))?> Se preferir colocar dentro da função, pode deixá-la somente assim: function makeRandomPassword() { return md5(uniqid(rand(), true)); } $numero_randomico = makeRandomPassword(); Compartilhar este post Link para o post Compartilhar em outros sites
adenison 0 Denunciar post Postado Abril 30, 2010 Obrigado Leozitho.. Valeu mesmo.. consegui Compartilhar este post Link para o post Compartilhar em outros sites