Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Beto Lima

[Resolvido] array aleatório

Recommended Posts

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.