Ir para conteúdo
Fórum Script Brasil

Todas Atividades

Atualizada automaticamente

  1. Recentemente
  2. Eu acredito que você não acrescentou a caixa de combinação no formulário UserForm1. Se você acrescentou, precisa mudar a propriedade (Name) de ComboBox1 para cbxPermissao.
  3. Hoje
  4. Olá, estou precisando de uma classe OSC para usar no VB6. Alguém saberia me indicar uma ou teria interesse em desenvolver essa classe?
  5. <?php // include "config.php"; // verifica se o usuário está logado Class Teste { public $ambiente,$item,$selecionado; function criarTabela() { $mysqli=new mysqli("localhost","root","","teste"); $mysqli->query("drop table if exists tbcomando"); $mysqli->query("create table tbcomando (id int auto_increment primary key, ambiente varchar(50) not null, item text not null)"); $mysqli->query("insert into tbcomando (ambiente,item) values ('cozinha','1 janela grande')"); $mysqli->query("insert into tbcomando (ambiente,item) values ('cozinha','2 janela pequena')"); $mysqli->query("insert into tbcomando (ambiente,item) values ('cozinha', '3 luzes')"); $mysqli->query("insert into tbcomando (ambiente,item) values('cozinha','4 tomadas')"); $mysqli->query("insert into tbcomando (ambiente,item) value ('sala','nada')"); $mysqli->query("insert into tbcomando (ambiente,item) values('quarto','nada')"); } function selecionado($ambiente) { $this->selecionado=$ambiente; $mysqli=new mysqli("localhost","root","","teste"); $this->ambiente=array_column($mysqli->query("select ambiente from tbcomando group by ambiente order by ambiente")->fetch_all(MYSQLI_ASSOC),'ambiente'); $this->item=array_column($mysqli->query("select item from tbcomando where ambiente = '$ambiente' group by item order by item")->fetch_all(MYSQLI_ASSOC),'item'); } } $teste=new Teste(); if(isset($_GET['rota'])) { $teste->selecionado($_GET['rota']); } else { $teste->selecionado("cozinha"); } ?> <select name="ambiente" onchange="location.replace('?rota='+this.value)"> <?php foreach($teste->ambiente as $ambiente) : ?> <option <?= $teste->selecionado == $ambiente ? 'selected' : '' ?>> <?=$ambiente?> </option> <?php endforeach; ?> </select> <select name="detalhe"> <?php foreach($teste->item as $item) : ?> <option><?=$item?></option> <?php endforeach; ?> </select>
  6. Você tem o problema das N-Rainhas e precisa resolver sem recursão, ou seja, transformar a sua função teste em um algoritmo iterativo. Hoje o seu código usa backtracking recursivo: chama teste(..., col+1, ...) e volta removendo a rainha. Para eliminar a recursão, você pode simular a pilha de chamadas manualmente, ou usar um laço que avance/retorne colunas conforme necessário. Aqui vai uma ideia de como reescrever de forma iterativa: melon playground #include <stdio.h> #define MAX 20 int sol = 0; int mapafreq[MAX][MAX]; int seguro(int tab[MAX][MAX], int N, int linha, int col) { int i, j; // verifica linha à esquerda for (i = 0; i < col; i++) if (tab[linha][i]) return 0; // diagonal superior esquerda for (i = linha, j = col; i >= 0 && j >= 0; i--, j--) if (tab[i][j]) return 0; // diagonal inferior esquerda for (i = linha, j = col; j >= 0 && i < N; i++, j--) if (tab[i][j]) return 0; return 1; } void imprimir(int tab[MAX][MAX], int N) { int i, j; printf("Solução %d:\n", sol+1); for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { printf("%c ", tab[i][j] ? 'Q' : '.'); } printf("\n"); } printf("\n");
  7. Yesterday
  8. <?php include "config.php"; // Verifica o login if(!isset($_SESSION['uname'])){ header('Location: index.php'); } // Termina a sessao if(isset($_POST['but_logout'])){ session_destroy(); header('Location: index.php'); } ?> <select name="comando" id="idcomando"></p> <?php $sql_query = "select id_comando, comando from comando"; $result = mysqli_query($con,$sql_query); while ($row = mysqli_fetch_array($result)) { echo "<option value = ".$row['id_comando'] . ">" .$row['comando']. "</option>"; } ?> </select> Até aqui está tudo bem, faz a pesquisa na base de dados e aparece os resultados corretos. A questão é ao selecionar um valor desta listbox, ele tem que fazer uma pesquisa para atualizar a segunda list box. A 1º listbox só faz a pesquisa 1 vez o objetivo é consoante o valor da primeira listbox1 atualizar (pesquisar) os valore para a list2 ou seja carrega a listbox1 quando abre a pagina depois imaginemos que escolhe a opção "sala na listbox1" tem que fazer uma nova pesquisa (select id_divisao, divisao from divisao where comando = 'sala') e atualiza a segunda listbox2 com os dados recolhidos da base de dados (divisao)
  9. Conversando com o Copilot, ele descobriu que a mensagem de erro não vem do Microsoft Access, mas do aplicativo "Sociedade Harmonia Jaguarão". Eu nunca usei o modo SQL nas consultas, mas eu acredito que o seu ponto de partida deveria ser lá, e não dentro de um aplicativo de terceiros.
  10. The building automation systems market in Brazil is experiencing steady growth, driven by increasing demand for energy efficiency, sustainability, and security across residential, commercial, and industrial projects. Factors such as the adoption of smart technologies, environmental regulations, and the need to reduce operating costs are strengthening the sector’s expansion. In my opinion, the strongest opportunities will be in commercial buildings and corporate projects, where digitalization and the integration of smart solutions will be key to attracting investment and enhancing competitiveness in the coming years.
  11. The smart TV market has grown rapidly over the past few years, driven by increased demand for streaming, voice assistants, and integrated home entertainment. In 2025, we’re seeing better tech—AI features, 8K resolution, and app ecosystems—but also signs of market saturation in some regions. Do you think the smart TV market will keep booming, or are we starting to see a plateau in growth and innovation?
  12. The Linux operating system market has grown a lot in recent years, especially in cloud servers, enterprise environments, and even mobile (like Android). With more developers and companies choosing open-source solutions, do you think Linux will keep gaining market share against Windows and macOS?
  13. Última semana
  14. Eu coloquei o vetor para explicar o problema do combo box. Para tirar o vetor do banco de dados a sequência é mais ou menos assim, você precisa estar familiarizado com o MySQL. Fase 1: CREATE TABLE comodos ( id INT AUTO_INCREMENT PRIMARY KEY, nome VARCHAR(50), item VARCHAR(100) ); Fase 2: INSERT INTO comodos (nome, item) VALUES ('cozinha', '1 janela grande'), ('cozinha', '2 janelas pequenas'), ('cozinha', '3 luzes'), ('cozinha', '4 tomadas'), ('sala', NULL), ('quarto', NULL); Fase 3: <?php $pdo = new PDO('mysql:host=localhost;dbname=seubanco', 'usuario', 'senha'); // Consulta agrupando os itens por cômodo $sql = "SELECT nome, item FROM comodos"; $stmt = $pdo->query($sql); $vetor = []; while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $comodo = $row['nome']; $item = $row['item']; // Se o cômodo ainda não foi adicionado ao vetor if (!array_key_exists($comodo, $vetor)) { $vetor[$comodo] = []; } // Adiciona o item ou 'nada' se for nulo if ($item !== null) { $vetor[$comodo][] = $item; } } // Garante que cômodos sem itens apareçam com 'nada' foreach ($vetor as $comodo => $itens) { if (empty($itens)) { $vetor[$comodo][] = 'nada'; } } // Transforma em estrutura desejada $resultado = []; foreach ($vetor as $comodo => $itens) { $resultado[] = [$comodo => $itens]; } print_r($resultado); ?>
  15. Era mesmo isso. só que na parte public $vetor=[ ['cozinha'=>['1 janela grande','2 janelas pequenas','3 luzes','4 tomadas']], ['sala'=>['nada']], ['quarto'=>['nada']] ]; as opções são introduzias manualmente e eu queria que fosse atraves de uma consulta $sql_query = "select id_comando, comando from comando"; Irá apareces o que eu tenho na base de dados (que sera cozinha, sala, quarto) Só depois ao selecionar por exemplo sala faz outro pesquisa $sql_query = "select id_divisao, divisao from from divisao where comando = a escolha "; Não sei se consegui explicar bem
  16. Você precisa tirar duas linhas do seu código: <?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; // ---------------------> tira isso use PHPMailer\PHPMailer\Exception; require 'vendor/autoload.php'; // Certifique-se de que o autoload está correto $mail = new PHPMailer(true); try { // Configurações do servidor SMTP do Gmail $mail->SMTPDebug = SMTP::DEBUG_SERVER; // ---------------------> tira isso $mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; $mail->Username = '[email protected]'; // Seu e-mail Gmail $mail->Password = 'abcd abcd abcd abcd'; // senha de app $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; $mail->Port = 465; // Remetente e destinatário $mail->setFrom('[email protected]', 'Frank K Hosaka'); $mail->addAddress('[email protected]', 'Frank K Hosaka'); // Conteúdo do e-mail $mail->CharSet='UTF-8'; $mail->Encoding='base64'; $mail->Subject = 'Teste de envio via PHPMailer'; $mail->Body = 'Olá Frank, este é um teste de envio usando PHPMailer'; $mail->send(); echo 'Mensagem enviada com sucesso!'; } catch (Exception $e) { echo "Erro ao enviar: {$mail->ErrorInfo}"; } ?>
  17. Este artigo explora o conceito, os métodos, os benefícios e os desafios associados à detecção de manutenção em sensores, com base em informações recentes e confiáveis.
  18. <?php Class Teste { public $ambiente=[], $detalhe=[], $selecionado; public $vetor=[ ['cozinha'=>['1 janela grande','2 janelas pequenas','3 luzes','4 tomadas']], ['sala'=>['nada']], ['quarto'=>['nada']] ]; function inicio() { $this->ambiente=[]; foreach($this->vetor as $key => $subvetor) { foreach($subvetor as $ambiente => $detalhe) { $this->ambiente[]=$ambiente; } } $this->detalhe=$this->vetor[0]['cozinha']; } function selecionado($ambiente) { $this->inicio(); $this->selecionado=$ambiente; $this->detalhe=[]; foreach($this->vetor as $item){ if(array_key_exists($ambiente,$item)) { $this->detalhe=$item[$ambiente]; break; } } } } if(isset($_GET['rota'])) { $rota=$_GET['rota']; $teste=new Teste(); $teste->selecionado($rota); } else { $teste=new Teste(); $teste->inicio(); } ?> <select name="ambiente" onchange="location.replace('?rota='+this.value)"> <?php foreach($teste->ambiente as $ambiente) : ?> <option <?= $teste->selecionado == $ambiente ? 'selected' : '' ?>> <?=$ambiente?> </option> <?php endforeach; ?> </select> <select name="detalhe"> <?php foreach($teste->detalhe as $detalhe) : ?> <option><?=$detalhe?></option> <?php endforeach; ?> </select>
  19. Só faltou o trecho da request assíncrona (tb conhecido como AJAX) Pode-se resolver com fetch (nativo do js) ou usando a lib axios, entre outras maneiras
  20. <?php $vetor=[ ['cozinha'=>['1 janela grande','2 janelas pequenas','3 luzes','4 tomadas']], ['sala'=>['nada']], ['quarto'=>['nada']] ]; ?> <select id="ambienteSelect"> <option value="">Selecione um ambiente</option> </select> <select id="detalhesSelect"> <option value="">Selecione um detalhe</option> </select> <script> const dados = <?php echo json_encode($vetor); ?> </script> <script> const ambienteSelect = document.getElementById('ambienteSelect'); const detalhesSelect = document.getElementById('detalhesSelect'); // Preenche o primeiro select com os ambientes dados.forEach(item => { const ambiente = Object.keys(item)[0]; const option = document.createElement('option'); option.value = ambiente; option.textContent = ambiente.charAt(0).toUpperCase() + ambiente.slice(1); ambienteSelect.appendChild(option); }); // Atualiza o segundo select com base na escolha do primeiro ambienteSelect.addEventListener('change', () => { const ambienteEscolhido = ambienteSelect.value; detalhesSelect.innerHTML = '<option value="">Selecione um detalhe</option>'; const ambienteData = dados.find(item => item[ambienteEscolhido]); if (ambienteData) { ambienteData[ambienteEscolhido].forEach(detalhe => { const option = document.createElement('option'); option.value = detalhe; option.textContent = detalhe; detalhesSelect.appendChild(option); }); } }); </script>
  21. Eu criei a tblivroentrada (id - auto-increment, primary, xml - text), copiei um xml da tela do navegador e colei no campo xml. O resultado foi um desastre. O pior é que não sabia como ludibriar o PHP para ler um registro MySQL como se fosse um arquivo xml, e foi aí que o Copilot me ensinou o comando simplexml_load_string: <?php require 'config.php'; if (isset($_FILES['arquivoXml']) && $_FILES['arquivoXml']['error'] === UPLOAD_ERR_OK) { $caminhoTemporario = $_FILES['arquivoXml']['tmp_name']; $xml = simplexml_load_file($caminhoTemporario); $xmlString = $xml->asXML(); (new Conn)->update("tblivroentrada set xml='$xmlString' where id=1"); $registro=(new Conn)->select("* from tblivroentrada where id=1")[0]->xml; $novoXml = simplexml_load_string($registro); echo($novoXml->NFe->infNFe['Id']); unset($_POST['arquivoXML']); } ?> <form method="post" enctype="multipart/form-data"> <label>Selecione o arquivo XML:</label> <input type="file" name="arquivoXml"> <button type="submit">Enviar</button> </form>
  22. Mais Cedo
  23. mas tem ideia como se faz?
  24. Resolve-se com javascript e AJAX
  25. Eu tenho o seguinte código que esta funcionar basicamente vai a base de dados e carrega todos os comandos disponíveis que eu tenho, por exemplo 1-Cozina, 2-Sala, 3-Quarto o que eu pretendo é criar outra listbox onde ele ira fazer a pesquisa do que esta selecionado na list1 e atualizar a list2 por exemplo list1 1-Cozinha na list2 deverá aparecer 01-Janela Grande, 02-Janela pequena, 03-Luz, 04-Tomadas os números seriam obtidos através da tabela divisao, id_divisao e nome <?php include "config.php"; // Check user login or not if(!isset($_SESSION['uname'])){ header('Location: index.php'); } // logout if(isset($_POST['but_logout'])){ session_destroy(); header('Location: index.php'); } ?> <!DOCTYPE html> <html lang="pt"> <html> <head> <meta charset="utf-8"> <title>Casa </title> <link href="menu.css" rel="stylesheet" type="text/css"> <meta charset="utf-8" </head> <body> <table border="0"> <!--<table border="0" width="100%" cellpadding="1">--> <tr> <th> <div class="menu"> <a href="home.php" class="butaomenu">Principal</a> <a href="relatorio.php" class="butaomenu">Relatório</a> <a href="consulta.php" class="butaomenu">Piscina</a> <p class="textologin">Login : <?php echo($_SESSION['uname']) ?> </p> </div> </th> <th> <div class="fundo"> <p class="textologin">Luzes</p> <p style="text-align: left"><select name="comando" id="idcomando"></p> <?php $sql_query = "select id_comando, comando from comando"; $result = mysqli_query($con,$sql_query); while ($row = mysqli_fetch_array($result)) { echo "<option value = ".$row['id_comando'] . ">" .$row['comando']. "</option>"; } ?> </select> </div> </th> </tr> </table> </body> </html>
  26. Essa é uma pergunta difícil de responder, o Livewire é dividido em duas partes, o Componente e o Blade. O Blade começa com um <div> e termina com um </div>, logo o único lugar para colocar um código JavaScript é dentro desse marcador. A minha intuição me disse que isso vai dar dor de cabeça, assim usei o método da tentativa e erro. Eu embuti o código JavaScript dentro do componente HTML, assim: arquivo resources > views > livewire > pagar.blade.php (parcial) <div class="w-[180px] truncate text-gray-500" onclick="this.classList.toggle('truncate')"> {{ $pendencia['lcto'].":".$pendencia['hist']}} </div> Tentei usar o comando wire:click, mas isso acabou expandindo todas as linhas, quando eu queria expandir apenas uma linha, a que foi clicado. Esse truque deu certo, e o DevTools do Chrome não apontou nenhum erro.
  27. O meu primeiro roteador só funcionava com um argumento, com a ajuda do Copilot mudei para ele suportar mais de um argumento. Mas quando um dos argumentos tinha um ponto no meio do caminho, o roteador separava o que era um valor em vários argumentos. O Copilot fez auditoria no meu roteador, e descobriu que usei o comando $_GET indevidamente, sem uma chave. O meu roteador é assim: <?php spl_autoload_register(fn ($class) => require str_replace('\\', DIRECTORY_SEPARATOR, strtolower($class)) . '.php'); $rota = 'login_login'; $parametros = []; if ($_GET) { $chaveCompleta = key($_GET); // Ex: Login_menu_param1_param2_param3 if (strpos($chaveCompleta, '_') === false) { exit; // proteção contra valores inválidos } $rota=$chaveCompleta; } $segmentos = explode('_', $rota); $nomeControle = $segmentos[0]; $metodo = $segmentos[1]; $parametros = array_slice($segmentos, 2); $controle = new $nomeControle(); call_user_func_array([$controle, $metodo], $parametros); e o Copilot disse que o correto é assim: <?php spl_autoload_register(fn ($class) => require str_replace('\\', DIRECTORY_SEPARATOR, strtolower($class)) . '.php'); $rota = $_GET['rota'] ?? 'login_login'; $segmentos = explode('_', $rota); $nomeControle = $segmentos[0]; $metodo = $segmentos[1]; $parametros = array_slice($segmentos, 2); $controle = new $nomeControle(); call_user_func_array([$controle, $metodo], $parametros); Ainda não testei a nova sugestão do Copilot, estou tentando me recompor. Que vergonha!
  28. Frank K Hosaka

    O roteador

    Eu estava me referindo a esse código: <?php spl_autoload_register(fn ($class) => require str_replace('\\', DIRECTORY_SEPARATOR, strtolower($class)) . '.php'); $rota = 'login_login'; $parametros = []; if ($_GET) { $chaveCompleta = key($_GET); // Ex: Login_menu_param1_param2_param3 if (strpos($chaveCompleta, '_') === false) { exit; // proteção contra valores inválidos } $rota=$chaveCompleta; } $segmentos = explode('_', $rota); $nomeControle = $segmentos[0]; $metodo = $segmentos[1]; $parametros = array_slice($segmentos, 2); $controle = new $nomeControle(); call_user_func_array([$controle, $metodo], $parametros); mas o Copilot disse que o código está equivocado, eu não posso usar diretamente a variável $_GET sem nenhuma chave.
  29. Eu ainda não tenho a menor noção sobre segurança na programação, o máximo que eu consegui foi criar a seguinte rotina no arquivo menuView.php que é invocado pelos outros arquivos: <?php if(!isset($_SESSION['id'])) {header('Location: ?Login_login');} ?> O Copilot comentou que ele parece confuso, ele esperava coisa do tipo <?php if(!isset($_SESSION['id'])) {header('Location: login.php');} ?> Eu comentei que isso não iria funcionar no meu caso. No meu caso, iria funcionar se fosse assim: <?php if(!isset($_SESSION['id'])) {header('Location: index.php');} ?> Mas eu acredito que o nível de segurança é o mesmo.
  30. tomm chris

    O roteador

    Você mencionou apenas “O roteador” — está se referindo a um roteador de rede no sentido geral, ou a um modelo/problema específico que quer discutir (por exemplo, configuração, senha, alcance, falhas)
  1. Mais Resultados


  • Estatísticas dos Fóruns

    • Tópicos
      152,5k
    • Posts
      652,4k
×
×
  • Criar Novo...