Jump to content
Bruno123

[Resolvido] Gerenciamento de fila

Recommended Posts

Boa noite, estou tentando desenvolver um sistema de gerenciamento de fila de banco, sou iniciante no php, então estou com um pouco de dificuldade. Fiz um gerador de senha, mas toda vez que gero uma nova senha a antiga some e fica nessa, eu gostaria que as senhas seguissem uma ordem de fila. Se alguém puder ajudar, agradeço. também gostaria de uma ajuda para criar um chamador para essas senhas seguindo uma fila.

<?php
echo "<form>";
echo "<button onclick='gerarSenha()'>Gerar Senha</button><br/>";
echo "<form/>";

    $letras = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'W', 'Y', 'Z');
    $numeros = array(-1, -2, -3, -4, -5, -6, -7, -8, -9);
    $arraysenha = array();
    $total_let = count($letras) - 1;
    $total_num = count($numeros) - 1;
    $senha = $letras[rand(0, $total_let)] . $letras[rand(0, $total_let)] . $letras[rand(0, $total_let)] . $numeros[rand(0, $total_num)];
    $arraysenha []= $senha;
    echo "<pre>";
    print_r($arraysenha);
    echo "<pre/>";

?>

Share this post


Link to post
Share on other sites

Olá!
Creio que não entendi direito.

você precisa clicar num botão que te retorne senhas uma a uma, sequencialmente?

Do modo em que está, as senhas serão sempre geradas randomicamente.
Você precisa guardar as possíveis senhas geradas em algum lugar, se quiser usá-las uma a uma, sequencialmente.

 

P.S.:

O php tem a função range, que já gera intervalos alfabéticos|numéricos, veja:
 

<?php
  // define letras maiúsculas de A até Z
  $letras = range('A', 'Z');

  // define números inteiros de 1 até 9
  $numeros = range(1, 9);

  // embaralha as letras
  shuffle($letras);

  // embaralha os números
  shuffle($numeros);

  // cria uma senha com 3 letras - um número
  $senha = implode('', array_slice($letras, 3, 3)) . '-' . end($numeros);

  echo '<pre>';
  print_r($senha);
  echo '</pre>';

 

Share this post


Link to post
Share on other sites

Isso, no caso eu quero que mostre na tela, pra toda vez que eu gerar uma nova senha ela fique aparecendo na tela, por exemplo: ABC-1 ,ABC-9,ABC-5. Sempre que eu gero uma nova senha a antiga desaparece, mas eu quero que ela fique aparecendo na tela seguindo uma fila, deu pra entender ?

 

Share this post


Link to post
Share on other sites

Tente guardá-las em algum lugar.
Veja esse exemplo guardando na sessão:

 <?php
  // inicia a sessão:
  session_start();

  // define letras maiúsculas de A até Z
  $letras = range('A', 'Z');

  // define números inteiros de 1 até 9
  $numeros = range(1, 9);

  // embaralha as letras
  shuffle($letras);

  // embaralha os números
  shuffle($numeros);

  // cria uma senha com 3 letras - um número
  $_SESSION['senhas'][] = implode('', array_slice($letras, 3, 3)) . '-' . end($numeros);

  echo '<pre>';
  print_r($_SESSION['senhas']);
  echo '</pre>';
?>

<a href="./">Gerar mais uma senha.</a>


 

Share this post


Link to post
Share on other sites

Agora veja esse exemplo, guardando em um arquivo .txt:
 

<?php
    
  // define letras maiúsculas de A até Z
  $letras = range('A', 'Z');

  // define números inteiros de 1 até 9
  $numeros = range(1, 9);

  // embaralha as letras
  shuffle($letras);

  // embaralha os números
  shuffle($numeros);

  // cria uma senha com 3 letras - um número
  $senha = implode('', array_slice($letras, 3, 3)) . '-' . end($numeros);


  //define um nome para o arquivo
  $file = 'senhas.txt';

  // se não puder criar/abrir o arquivo
  if (!$handleFile = fopen($file, "a+")) {
    // mostra mensagem na tela
    die("<p>Erro ao abrir/criar o arquivo: (<b>$file</b>)</p>");
  }
  // grava senha com uma quebra de linha no final
  fwrite($handleFile, $senha . "\r\n");

  // fecha o arquivo
  fclose($handleFile);

  // mostra o conteúdo do arquivo na tela:
  echo '<pre>';
  print_r(file_get_contents($file));
  echo '</pre>';
?>

<a href="./">Gerar nova senha.</a>

 

Share this post


Link to post
Share on other sites

Se precisam gerenciar prioridades, utilize DS\PriorityQueue ou SplPriorityQueue.

 

Em ambas, vocês conseguirão adicionar as senhas e gerenciar qual deve ter uma prioridade maior (tal qual idosos, gestantes, etc...) e quais devem seguir a prioridade normal.

 

No link abaixo há um artigo bem completo do criador das Data Structures do PHP:

https://medium.com/@rtheunissen/efficient-data-structures-for-php-7-9dda7af674cd

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By erick.major
      Olá a todos,
       
      Gostaria de definir um tempo de validade para a URL de checkout em meu sistema, p. ex., validade da URL de x dias.
       
      Verifiquei no sistema de Checkout da Cielo se existia alguma configuração para determinar o prazo de validade desta URL, mas não obtive sucesso. Verifiquei na documentação e também não encontrei nada relacionado.
       
      Há algum campo no carrinho para fazer essa configuração de validade da URL?
      Muito obrigado!
    • By th4deu
      PROGRAMADOR PHP / LARAVEL
       
      Requisitos:
      Atuar no desenvolvimento de sistemas em PHP (OO), HTML, Javascript (jQuery) e CSS; Realizar integrações com APIs de sistemas externos e migração de conteúdo / estrutura entre sistemas; Conhecimento necessário em PHP, MySQL, HTML, CSS, Javascript / jQuery, Bootstrap e Framework Laravel (preferencialmente familiarizado com padrão de arquitetura MVC); Ter boa comunicação e saber trabalhar em equipe.  
      Diferenciais:
      Conhecimento em MSSQL AngularJS Docker GIT  
      Benefícios:
      Vale Transporte, Vale alimentação e Plano de saúde  
      Salário compatível com o mercado.
      Local de trabalho: Belo Horizonte, MG.
       
      Interessados favor enviar um e-mail para rh@twtinfo.com.br.
    • By pedrohsantis
      Bom dia, estou com a seguinte dúvida, sou novo no "Mundo php" então ainda estou apanhando.

      Preciso criar um sistema simples, porém que ele faça o seguinte.
      Importe um relatório xlsx , que eu abra ele consigo editar se precisar.
      Após isso, preciso gerar um novo relatório porém com nome campos diferentes.
      Assim, temos um sistema hoje, porem ele gera um relatorio no qual os campos são diferentes no SAP, e não é necessário de todos os campos que o outro sistema gera , porém para ganharmos tempo , eu tive a ideia de criar tipo de um "conversor" para essa finalidade, importar o relatorio de um sistema, filtrar os campos que serão necessario para o SAP e exportar para o SAP.
       
       
      é possível criar algo assim ?
    • By bobzznnn
      Olá meus amigos, eu não sei onde postar minha dúvida, então vou por aqui pois talvez alguem possa me ajudar.
      É o seguinte, trabalho com sistema de Marketing em Laravel e pra cada usuário tem comissões multiniveis, ou seja
      " Pedro indicou Maria( que neste caso 'Maria' Ficaria em Baixo de 'Pedro'. Até aí tudo bem!) logo após 'Maria' Recrutou outro membro o 'Joaquin'
      ( que neste caso 'Joaquin' Ficaria em Baixo de 'Maria')<-- eu não consigo mostrar este indicado('Joaquin') ao 'Pedro' que está lá em cima.
       
      Exemplo: Suponhamos que eu sou o tal 'Pedro' e este da imagem abaixo é a 'Maria', sendo em baixo dela tem o ' Joaquin'(que n está aparecendo).
      Gostaria de saber alguma forma de como clicar na 'Maria' e aparecer o 'Joaquin'.
       
       

       
      segue meu html:
       
      <table id="example2" class="table table-bordered table-hover"> <thead> <tr> <th>Nome</th> <th>Email</th> <th>Telefone</th> <th>Situação</th> <th>Investimento</th> <th>Graduação</th> </tr> </thead> <tbody> @inject('usuarios', 'App\User') @foreach($usuarios->getIndicados() as $user) <tr> <td><b>{{$user->name}}</b></td> <td>{{$user->email}}</td> <td>{{$user->telefone}}</td> <!-- <td>{{$user->getUserDirection()}}</td> --> <td>{{$user->getStatus()}}</td> <td>{{$user->getPacote()->nome}}</td> <td>{{$user->minhaGraduacao()}}</td> </tr> @endforeach </tbody> </table>  
      Aqui o PHP:
       
      public function getIndicados($id = '') { if ($id == '') { $id = Auth::user()->id; } $reffer = Referrals::where('pai_id', $id)->get(); $users = array(); foreach ($reffer as $key => $r) { $users[$key] = $this->where('id', $r->user_id)->first(); } return $users; } public function getFilhos($id = null, $count = false) { if (!$id) { $id = $this->id; } $reffer = Referrals::where('system_id', $id)->orderBy('direcao', 'ASC')->get(); $users = array(); foreach ($reffer as $key => $r) { $user = $this->where('id', $r->user_id)->first(); $user->direcao = $this->getUserDirection($r->user_id); $users[$key] = $user; } if ($count) { return count($users); } return $users; }  
    • By winter2018
      Boa tarde galera. Como vão?
       
      Preciso de uma ajuda aqui por favor
      Estou a desenvolver um sistema de gestão de estagiários.
       
      Eu preciso ter as seguintes funcionalidades:
      1-O sistema deve ter um painel / portal do próprio estagiario aonde ele vai poder aceder os seus dados, e edita-los
      . 2- O estagiarios  pode anexar os seus documentos e actualizar a sua foto.
      3- Deve ser possível o admin enviar informações ou ficheiros para todos estagiarios 
      estou com dificuldade em implementar essas funcionalidades.
       
      Alguem ajuda por favor?
       
      Winter2018
       
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.