tupinikin 1 Denunciar post Postado Março 3, 2016 Até alguns dias atrás eu usava a LocaWeb e tive que trocar de servidor, pois iriam desativar a maquina que eu usava e com o trecho do código abaixo, os números quase não se repetiam. Ao alterar para um servidor na redehost com centos 6, os números começaram a se repetir MUITAS VEZES. ex: de 120 registros, as vezes duplica 10. $cod_cadastro = addslashes($_GET["cod_cadastro"]); // gera o codigo de barras for($i=0; $i<20; $i++) { $cod_barras = $cod_cadastro; $n = strlen($cod_barras); for ($j=0; $j<5-$n; $j++) $cod_barras = "0".$cod_barras; // gera numero randomico $n_rand = mt_rand(1000000,9999999); $cod_barras = $n_rand."".$cod_barras; } Versão do PHP 5.3.3 Servidor CentOs 6 X64 Zpanel Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Março 3, 2016 Você pode adicionar a função uniqid() uniqid(); http://www.w3schools.com/php/func_misc_uniqid.asp Ou você pode fazer uma verificação antes para ver se o número já existe. Compartilhar este post Link para o post Compartilhar em outros sites
tupinikin 1 Denunciar post Postado Março 3, 2016 Você pode adicionar a função uniqid() uniqid(); http://www.w3schools.com/php/func_misc_uniqid.asp Ou você pode fazer uma verificação antes para ver se o número já existe. Alarte, obrigado; acho que resolveu meu problema. Ficou assim. function soNumero($str) { return preg_replace("/[^0-9]/", "", $str); } $codigo_completo= soNumero(uniqid(rand(), true)); $codigo = substr($codigo_completo,0,12); Cadastrei um milhão de registros e eles se repetiram 20 vezes, totalmente aceitável. Compartilhar este post Link para o post Compartilhar em outros sites