Beto Lima 0 Denunciar post Postado Novembro 10, 2009 Estou usando alguns exemplos do manual do php junto com sessão. Na verdade quero implementar um captcha com numeros e letras bem simples... A minha dúvida é a seguinte: Adaptando o meu exemplo, como eu deveria fazer para o meu array imprimir aleatóriamente? meu cód: srand((float) microtime() * 10000000); $input = array("ABCD", "EFGH", "IJKL", "MNOP", "QRST", "1234"); $rand_keys = array_rand($input, 2); if(!isset($_SESSION)){session_start();} $_SESSION['codigo'] = str_shuffle ($input[$rand_keys[0]]); $verifica = $_SESSION['codigo']; ali no: $input = array("ABCD", "EFGH", "IJKL", "MNOP", "QRST", "1234"); se eu for dar um echo $verifica ele imprime as seguintes situações: ABCD, ou, ACDB, ou, 3412, ou ,1243. O que eu quero na verdade é que ele misture as strings e que pegue informações de outras posições entendem? Queria que ficassem assim: AB12, ou MOAB, e sempre sorteando aleatório. Alguém poderia me ajudar nisso? Valeu Compartilhar este post Link para o post Compartilhar em outros sites
jpraminelli 3 Denunciar post Postado Novembro 10, 2009 tenta ai... <?php $input = array("ABCD", "EFGH", "IJKL", "MNOP", "QRST", "1234"); shuffle($input); ?> <html> <head> <title>teste</title> </head> <body> <? for($i=0;$i<=0;$i++){ echo $input[$i]; } ?> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
Beto Lima 0 Denunciar post Postado Novembro 10, 2009 imprimiu assim: QRSTABCD Queria limitar o print em 4 algarismos e que saísse assim: Ex: QR34, ou ABFG, ou T31R e etc.... Compartilhar este post Link para o post Compartilhar em outros sites
jpraminelli 3 Denunciar post Postado Novembro 10, 2009 na verdade nem precisa do for, você pode substituir o for por isto <? /*for($i=0;$i<=0;$i++){ echo $input[$i]; } */ echo $input[0]; ?> explicando,você tem um array que recebe os valores, dai tem shuffle que faz um aleatórios desses valores, e por fim um echo exibindo apenas um item (aleatorio a cada refresh da pagina); Compartilhar este post Link para o post Compartilhar em outros sites
Fernando Medrado 1 Denunciar post Postado Novembro 10, 2009 E aew Beto, beleza? Cara dá uma olhada nesse código e vê se ajuda. Há um tempo atrás peguei um exemplo parecido não lembro onde, que usei pra gerar senhas aleatórias $charsAceitos = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; $numAlgarismos = 4; $max = strlen($charsAceitos)-1; $codigo = ''; for($i=0; $i < $numAlgarismos; $i++){ $codigo .= $charsAceitos[mt_rand(0, $max)]; } echo $codigo;Flw. Compartilhar este post Link para o post Compartilhar em outros sites
Beto Lima 0 Denunciar post Postado Novembro 10, 2009 Perfeito Fernando. deu certinho sim como eu imaginava. Valeu mesmo. Compartilhar este post Link para o post Compartilhar em outros sites
Beto Lima 0 Denunciar post Postado Novembro 10, 2009 na verdade nem precisa do for, você pode substituir o for por isto <? /*for($i=0;$i<=0;$i++){ echo $input[$i]; } */ echo $input[0]; ?> explicando,você tem um array que recebe os valores, dai tem shuffle que faz um aleatórios desses valores, e por fim um echo exibindo apenas um item (aleatorio a cada refresh da pagina); dessa maneira ele não mistura as strings, mas da forma como o Fernando postou ficou perfeita. Agradeço a você também pela ajuda. Compartilhar este post Link para o post Compartilhar em outros sites