Ir para conteúdo
Fórum Script Brasil

Todas Atividades

Atualizada automaticamente

  1. Recentemente
  2. Hoje
  3. Foi em 2020 é que eu conheci o PHP, o MySQL e o HTML, e graças ao WampServe eu consegui mexer com tudo isso no celular. Em março de 2023, coloquei tudo isso na Hostinger, e assim consegui mexer com tudo em qualquer terminal ou celular em qualquer parte do mundo, onde houvesse uma conexão com a internet. E finalmente chegou 04 de maio de 2024, essa é uma data histórica, eu consegui colocar a nota do fornecedor dentro do PHP, esse é o fim do pesadelo de 25 anos. Nesse tempo todo usei o Microsoft Excel para calcular o custo do produto, e depois digitava o que eu encontrei no banco de dados. Agora, eu passei esse serviço chato para o PHP: arquivo index.php <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet"> <?php // cuidado com esse código, ele não contempla o ICMS-ST, o IPI e a diferença da alíquota do ICMS function dec($value) { return ($value) ? number_format($value,2,',','.') : null; } $mysqli=new mysqli("localhost","root","","diario"); // Carregar o arquivo XML $dom = new DOMDocument(); $dom->load('fornecedor.xml'); // Acessar os itens $nfe = $dom->documentElement; $itens = $nfe->getElementsByTagName('det'); echo "<table class='table table-striped table-sm w-50 m-auto'>"; $vNF=$nfe->getElementsByTagName('vNF')->item(0)->textContent; $nNF=$nfe->getElementsByTagName('nNF')->item(0)->textContent; $xNome=$nfe->getElementsByTagName('xNome')->item(0)->textContent; echo "<tr class=fw-semibold><td><td><td>NF $nNF ". substr($xNome,0,4). "<td><td class=text-end>". dec($vNF); echo "<tr class=fw-semibold><td>CodForn<td>CodProd<td>Produto<td>Qt<td class=text-end>Total"; $soma=0; foreach ($itens as $item) { $codforn = $item->getElementsByTagName('cProd')->item(0)->textContent; $consulta=$mysqli->query("select codprod from tbprod where codforn like '%$codforn%' "); $resultado=$consulta->fetch_assoc(); if($resultado){ $codprod=(count($resultado)==1) ? $resultado['codprod'] : '<spam class=text-danger>Verificar</spam>'; } else { $codprod='<spam class=text-danger>Verificar</spam>'; } $produto = $item->getElementsByTagName('xProd')->item(0)->textContent; $quantidade = $item->getElementsByTagName('qCom')->item(0)->textContent; $valorTotal = $item->getElementsByTagName('vProd')->item(0)->textContent; $soma += $valorTotal; echo "<tr><td>" . $codforn; echo "<td>" . $codprod; echo "<td>" . substr($produto,0,25); echo "<td>" . intval($quantidade); echo "<td class=text-end> " . dec($valorTotal); } echo "<tr class=fw-semibold><td><td><td>Total dos itens<td><td class=text-end>" . dec($soma); echo "</table>";
  4. exercicio proposto utilizando a estrutura enquanto 1) Foi realizada uma pesquisa sobre algumas características físicas da população de uma certa região, a qual coletou os seguintes dados referentes a cada habitante, para análise: · Nome · Sexo (“M” – Masculino e “F” – Feminino) · Cor dos olhos (“A” – Azuis, “V” – Verde ou “C” – Castanho) · Idade · Altura Desenvolva um programa que determine e escreva: a) A quantidade de pessoas do sexo feminino cuja idade seja acima de 15 anos inclusive, tenha altura acima de 1,50 e olhos castanhos; b) A quantidade de pessoas do sexo masculino cuja idade seja acima de 17 anos inclusive, tenha altura acima de 1,70 e olhos azuis; c) A média das idades das mulheres lidas; d) A média das alturas dos homens lidos; e) A média de todas as idades lidas; f) A média de todas as alturas lidas. Obs.: A última pessoa que não entrará no cálculo, terá seu nome igual a FIM (flag).
  5. Hoje o pessoal da contabilidade me pediu as notas fiscais que foram emitidas em abril. Eu fui na Bling, baixei o arquivo e mandei para a contabilidade. A seguir, eles me mandaram uma lista de notas fiscais que estavam faltando no arquivo, eu fui verificar, e eu vi que eram notas que não foram autorizadas pela Secretaria da Fazenda. Eu achei bacana o trabalho da contabilidade, e fiquei imaginando como fazer isso no PHP. Estudei os arquivos XML e eu vi que o número da NF está na posição 29,30,31,32,33,34 daquele monte de número que aparece no nome do arquivo, e assim eu montei o meu código PHP com a ajuda da Gemini: arquivo index.php <?php $diretorio = 'xml'; $contaArquivos = count(scandir($diretorio)) - 2; echo "Número de arquivos xml: $contaArquivos <br>"; $notasFiscais = []; $nfces = scandir('xml'); foreach($nfces as $nfce){ if($nfce !== '.' && $nfce !=='..' ){ $notasFiscais[]=intval(substr($nfce,28,6)); } } sort($notasFiscais); $primeiraNota=intval($notasFiscais[0]); $ultimaNota=intval($notasFiscais[$contaArquivos-1]); echo "primeira nota: $primeiraNota <br>"; echo "ultima nota: $ultimaNota <br>"; echo "notas faltantes: " . ($ultimaNota-$primeiraNota+1-$contaArquivos) . "<br>"; for($i=$primeiraNota;$i<=$ultimaNota;$i++){ if(!in_array($i,$notasFiscais)){ echo $i . "<br>"; } }
  6. Yesterday
  7. Existem muitos consoles no mercado. Estou procurando o cassino móvel Vera&John perfeito para o meu jogo
  8. Última semana
  9. Pessoal, preciso saber em tempo real quantos usuários estão conectados no sistema PHP. Utilizo LDAP do AD como autenticação para acesso, alguém tem uma luz? Autentico pelo LDAP mas carrego um perfil ( tabela) mssql para saber as permissões do usuário.
  10. qual sistema operacional esta usando? pip esta instalado? esta usando alguma ide para instalar módulos, ou esta usando terminal?
  11. não consigo usar o comando pip segui alguns tutorias e percebi que minha pasta scripts do python estava vazia oque fazer
  12. Fiz uma macro para que quando um valor da coluna C estiver duplicado, recortar e colar a linha em outra aba. No entanto ele recortar apenas 1 das linhas duplicadas e eu preciso que recorte todas. Por exemplo, na Coluna C o valor X aparece 3x, eu quero que as três linhas com esse valor sejam recortadas e coladas na outra aba, não somente 1 linha, como está acontecendo. Abaixo segue meu código, desde já agradeço pela ajuda: Sub CopiarDados() Dim intTabela As Range Dim i As Integer, totalLin As Integer, nLin As Integer Dim n As Integer Set intTabela = Planilha2.Range("A1").CurrentRegion totalLin = intTabela.Rows.Count For i = 2 To totalLin n = WorksheetFunction.CountIf(intTabela.Columns(3), intTabela.Cells(i, 3)) If n > 1 Then nLin = Planilha6.Range("A1").CurrentRegion.Rows.Count + 1 intTabela.Rows(i).Cut Planilha6.Cells(nLin, 1) End If Next Application.CutCopyMode = False Sheets("Planilha6").Select End Sub
  13. Boa tarde estou desenvolvendo uma Web api, tenho uma função que e usada para tranferir produto de uma mesa para outra mesa. Quando solicito a transferencia o produto que foi solicitado a transferencia e deletado, o mais estranho que a função finaliza o update com o commit. Veja a função. public List<TransfereItensMesaMesa> TransfereItenMesaMesa(long OpOr, long MesaOr, long MesaDest, long Codigo, long CodProduto, double Quantidade, long CodCaixa, DateTime DataCaixa, long CodUsuario) { List<TransfereItensMesaMesa> _Estorna = new List<TransfereItensMesaMesa>(); bool Retorno = false; NpgsqlTransaction Trans; NpgsqlConnection Cnx = new NpgsqlConnection(Variaveis.StringConexaoPG); Cnx.Open(); Trans = Cnx.BeginTransaction(); try { var StatusOr = ffuncaobd.RetDadosString("Select \"Status\" From \"MesaOP\" Where \"Fechada\"='N' And \"Codigo\"=" + OpOr + " And \"Estorno\"='N' And \"Impressa\"='N' Order by \"Codigo\" Desc LIMIT 1"); if (StatusOr.ToUpper() != "Impressa".ToUpper()) { if (ffuncaobd.RetDados("Select \"Codigo\",\"DataAbertura\",\"Status\" From \"MesaOP\" Where \"Fechada\"='N' And \"Mesa\"=" + MesaDest + " And \"Estorno\"='N' Order by \"Codigo\" Desc LIMIT 1" , new string[] { "Codigo", "DataAbertura", "Status" }, 3) == true) { if (Variaveis.Dados is Array) { if (Variaveis.Dados is null) { } else { if (ffuncao.IsNumeric(Variaveis.Dados[0]) == true) { CodigoVenda = Convert.ToInt64(Variaveis.Dados[0]); Status = Variaveis.Dados[2].ToString(); if (Status.ToUpper() == "Impressa".ToUpper()) { Variaveis.Mensage = "A mesa de destino já foi impressa, para tranferir um item debloqueie a mesa"; Retorno = false; Trans.Rollback(); Cnx.Close(); goto Sair; } } } } } else { Trans.Rollback(); Cnx.Close(); Variaveis.Mensage = "Erro ao caregar a mesa de destino"; Retorno = false; goto Sair; } if (CodigoVenda == 0) { if (ffuncaobd.GravaTrans_Novo(Cnx, Trans, "Insert Into \"MesaOP\" " , new string[] { "Mesa", "DataCaixa", "Usuario", "Caixa", "DataAbertura" } , new string[] { MesaDest.ToString(), DataCaixa.ToString(), CodUsuario.ToString(), CodCaixa.ToString(), DateTime.Now.ToString() } , new string[] { "bi", "d", "bi", "bi", "DT" }) == true) { if (ffuncaobd.RetDadosTrans_Novo(Cnx, Trans, "Select \"Codigo\",\"DataAbertura\",\"Status\" From \"MesaOP\" Where \"Fechada\"='N' And \"Mesa\"=" + MesaDest + " And \"Estorno\"='N' Order by \"Codigo\" Desc LIMIT 1" , new string[] { "Codigo", "DataAbertura", "Status" }, 3) == true) { if (Variaveis.Dados is Array) { if (Variaveis.Dados is null) { Trans.Rollback(); Cnx.Close(); Variaveis.Mensage = "Erro ao caregar a mesa"; Retorno = false; goto Sair; } else { if (ffuncao.IsNumeric(Variaveis.Dados[0]) == true) { CodigoVenda = Convert.ToInt64(Variaveis.Dados[0]); Status = Variaveis.Dados[2].ToString(); } else { Trans.Rollback(); Cnx.Close(); Variaveis.Mensage = "Erro ao caregar a mesa"; Retorno = false; goto Sair; } } } else { Trans.Rollback(); Cnx.Close(); Variaveis.Mensage = "Erro ao caregar a mesa"; Retorno = false; goto Sair; } } else { Trans.Rollback(); Cnx.Close(); Variaveis.Mensage = "Erro ao caregar a mesa"; Retorno = false; goto Sair; } } else { Trans.Rollback(); Cnx.Close(); Variaveis.Mensage = "Erro ao cadastrar a mesa, para recebar a transferencia"; Retorno = false; goto Sair; } } if (CodigoVenda > 0) { string Sql = "UpDate \"MesaDetalhe\" Set \"Operacao\"=" + CodigoVenda + " Where \"Codigo\"=" + Codigo + ";"; if (ffuncaobd.GravaTrans_Novo_RetAfect(Cnx, Trans, "UpDate \"MesaDetalhe\" Set " , new string[] { "Operacao" } , new string[] { CodigoVenda.ToString() } , new string[] { "bi" } , Codigo , new string[] { "Codigo" } , new string[] { Codigo.ToString() } , false) > 0) //if (ffuncaobd.DeletarNovoTrans_RetNUmero_Novo(Cnx, Trans, Sql, false) > 0) { if (ffuncaobd.RetDadosNumeroInt64Trans_Novo(Cnx, Trans, "Select count(*) From \"MesaDetalhe\" where \"Operacao\"=" + OpOr) == 0) { string SqlOp = "Delete from \"MesaOP\" Where \"Codigo\"=" + OpOr + ";"; if (ffuncaobd.DeletarNovoTrans_RetNUmero_Novo(Cnx, Trans, SqlOp, false) > 0) { Trans.Commit(); Cnx.Close(); Variaveis.Mensage = "Tranferencia Realizada com Sucesso!!!"; Retorno = true; } else { Trans.Rollback(); Cnx.Close(); Variaveis.Mensage = "Não foi possível tranferir o item selecionado, Deletar a Mesa de Origem Sem Produtos"; Retorno = false; goto Sair; } } else { Trans.Commit(); Cnx.Close(); Variaveis.Mensage = "Tranferencia Realizada com Sucesso!!!"; Retorno = true; } } else { Trans.Rollback(); Cnx.Close(); Variaveis.Mensage = "Não foi possível tranferir o item selecionado para a mesa de destino"; Retorno = false; goto Sair; } } else { Trans.Rollback(); Cnx.Close(); Variaveis.Mensage = "Não foi possível carregar a operação da mesa de destino"; Retorno = false; goto Sair; } } else { Trans.Rollback(); Cnx.Close(); Variaveis.Mensage = "A mesa de origem já foi impressa, para tranferir um item debloqueie a mesa"; } } catch (Exception ex) { Variaveis.Erros = ex.Message; Variaveis.Mensage = "Não foi possivel Transfere o Iten da Mesa " + ex.Message; try { Trans.Rollback(); Cnx.Close(); } catch { try { Cnx.Close(); } catch { } } } Sair: _Estorna.Add(new TransfereItensMesaMesa() { Op = OpOr, Codigo = Codigo, CodProduto = CodProduto, Quantidade = Quantidade, CodCaixa = CodCaixa, DataCaixa = DataCaixa, CodUsuario = CodUsuario, Menssagem = Variaveis.Mensage, Erro = Variaveis.Erros, Retorno = Retorno }); Variaveis.Erros = ""; Variaveis.Mensage = ""; return _Estorna; } Obs: O registro e deletado somente quando na tabela mao o registro e criado junto com a alteração(UpDate) Se o restro na tabela mao já existe faz tudo certinho.
  14. Bom dia Pessoal! Preciso muito da ajuda de vocês. Estou criando um relatório no Crystal Reports, e o meu problema é que preciso que o cabeçalho não aparece na proxima página, só que sestá acontencedo é que, quando eu imprimo o relatório a primeira página aparece 1 de 1 e na segunda página aparece 1 de 4 aí o cabeçalho aparece duas vezes. Como faço para deixar a contagem de página certa, 1 de 5 e o cabeçalho aparecer só na primeira?
  15. Alguém poderia me ajudar nesta situação?
  16. Angela, para criar um projeto .NET Core no Visual Studio 2019 ou 2022, você precisa ter instalado o workload ".NET Core cross-platform development". Você pode verificar isso no Visual Studio Installer, na seção " fortune tiger". Se essa workload não estiver instalada, você pode adicioná-la e, em seguida, reiniciar o Visual Studio para que as alterações tenham efeito. Após isso, você deve conseguir criar projetos .NET Core normalmente.
  17. Mais Cedo
  18. Este código VBA parece ser utilizado para automatizar tarefas no SAP usando o SAP GUI Scripting. Ele inicia o aplicativo SAP, espera alguns segundos para que ele abra completamente, e então realiza uma série de ações, como redimensionar a janela, inserir uma transação, e pressionar botões no fortune tiger. É importante ter cuidado ao usar automações desse tipo, pois podem violar políticas de segurança ou termos de serviço da empresa. Certifique-se de ter permissão para automatizar essas tarefas e de seguir as diretrizes da sua organização.
  19. Olá a todos. O https://f12bet-entrar.com/ é o lugar perfeito para quem está procurando uma casa de apostas confiável. Estou jogando nesse site há alguns meses e sempre recebo apenas impressões positivas. Sua interface é muito intuitiva, o que é especialmente importante para iniciantes. Além disso, a variedade de eventos esportivos e as altas probabilidades tornam o jogo ainda mais emocionante. Fiquei especialmente satisfeito com o suporte ao cliente rápido e eficiente - todos os problemas são resolvidos instantaneamente. Eu recomendo!
  20. Na base da tentativa e erro, estudei o motor XMLhttpRequest do Javascript para conectar o HTML com o PHP bem como carregar um outro HTML dentro de um arquivo HTML. Para testar o código tive que limpar o histórico do navegador e até fechar o navegador. arquivo /Astudy/config.php <?php session_start(); define('DBNAME','teste'); define('HOST','localhost'); define('USER','root'); define('PASSWORD',''); $dbname=DBNAME; $verEsquema="select * from sys.schema_table_statistics where table_schema='$dbname'"; $pdoTemp=new PDO('mysql:host='.HOST,USER,PASSWORD); $resultado=$pdoTemp->query($verEsquema); $dbExiste=$resultado->fetchColumn()===$dbname; if(!$dbExiste){ $pdo->exec("create database ".DBNAME); $pdo->exec("use ".DBNAME); $pdo->exec("CREATE TABLE `usuarios` (`id` bigint unsigned NOT NULL AUTO_INCREMENT, `nome` varchar(45) ,`email` varchar(45) ,`senha` varchar(255), PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1"); $nome="Frank K Hosaka"; $email='frankhosaka@gmail.com'; $senha='1234'; $hashSenha=password_hash($senha,PASSWORD_BCRYPT); $pdo->query("insert into usuarios (nome,email,senha) values ('$nome','$email','$hashSenha')"); } $pdo=new PDO('mysql:host='.HOST.';dbname='.DBNAME,USER,PASSWORD); if(isset($_POST['email'])){ $email=$_POST['email']; $senha=$_POST['senha']; $smt=$pdo->query("select * from usuarios where email='$email'"); $usuario=$smt->fetchAll(PDO::FETCH_OBJ); if(count($usuario)==0){ echo "não existe usuario com email $email";exit; } if(password_verify($senha,$usuario[0]->senha)){ $_SESSION['id']=$usuario[0]->id; $_SESSION['nome']=$usuario[0]->nome; echo "liberado"; } else { echo "senha incorreta"; } } if(isset($_POST['usuario'])){ $id=$_SESSION['id']; $nome=$_SESSION['nome']; echo json_encode(['nome'=>$nome,'id'=>$id]); } arquivo /Astudy/diario.html <!DOCTYPE html> <meta charset="utf-8"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script> <script src="java.js"></script> <script>usuario()</script> <body style="max-width:500px;margin:0 auto"> <script src="java.js"></script> <script>carregaHTML('menu.html')</script> <div id="conteudo"></div> <table class="table table-striped table-sm"> <tr class=fw-semibold><td>data<td>contaD<td>contaC<td>Valor<td>Histórico <tr><td>01/05/24<td>101<td>301<td>15,00<td>Salário </table> arquivo /Astudy/index.html <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet"> <script src="java.js"></script> <body class="bg-light w-25 m-auto"> <main class="w-100" style="margin-top:120px"> <form action="javascript:login()" id="formLogin"> <div class="form-floating"> <input name="email" value="frankhosaka@gmail.com" class="form-control"> <label>Email</label> </div> <div class="form-floating"> <input type="password" name="senha" value="1234" class="form-control"> <label>Senha</label> <div> <input type="submit" class="w-100 btn btn-lg btn-primary"> </form> </main> </body> arquivo /Astudy/java.js function carregaHTML(url) { xhr = new XMLHttpRequest() xhr.open('GET', url) xhr.onload = function() { if (xhr.status === 200) { htmlContent = xhr.responseText; conteudo.innerHTML = htmlContent; } } xhr.send(); } function login(){ xhr = new XMLHttpRequest() formData=new FormData(formLogin) xhr.open('POST','config.php') xhr.onload = function() { if(xhr.status===200){ if(xhr.responseText=='liberado'){ window.location.href="menu.html"; } else { alert(xhr.responseText) } } } xhr.send(formData) } function usuario(){ xmlhttp=new XMLHttpRequest(); url = "config.php"; formData = new FormData(); formData.append('usuario',''); xmlhttp.open("POST",url,true); xmlhttp.send(formData); xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ usuario=JSON.parse(xmlhttp.responseText) nomeUsuario.innerHTML=usuario.nome if(usuario.id==1){ usuario1.classList.remove('d-none') usuario1.classList.add('d-block') } } } } arquivo /Astudy/menu.html <!DOCTYPE html> <meta charset="utf-8"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script> <script src="java.js"></script> <script>usuario()</script> <body style="max-width:500px;margin:0 auto"> <header id=cabecalho class="navbar navbar-light sticky-top bg-light flex-md-nowrap p-0"> Projeto HTML <div class=dropdown> <button type=button class="btn btn-outline-primary dropdown-toggle" data-bs-toggle=dropdown id=btmenu> Menu </button> <ul class="dropdown-menu" > <div id="usuario1" class="d-none"> <li><a class=dropdown-item href='diario.html' >Diário</a></li> <li><a class=dropdown-item href='balancete.html'>Balancete</a></li> <li><a class=dropdown-item href='pagar.html'>Pagar</a></li> <li><a class=dropdown-item href='outros.html'>Outros</a></li> </div> <li><a class=dropdown-item href='orcamento.html'>Orcamento</a></li> <li><a class=dropdown-item href='pessoas.html'>Pessoa</a></li> <li><a class=dropdown-item href='produtos.html'>Produto</a></li> <li><a class=dropdown-item href='venda.html'>Relatório de Venda</a></li> <li><a class=dropdown-item href='mercado.html'>Mercado Pago</a></li> </ul> </div> <div class="dropdown"> <button class="btn btn-outline-primary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false"> <spam id="nomeUsuario"></spam> </button> <ul class="dropdown-menu"> <li><a class="dropdown-item" href="index.html">Sair</a></li> <li><a class="dropdown-item" href="alterarSenha.html">Mudar a senha</a></li> </ul> </div> </header>
  21. Frank K Hosaka

    menu.html

    Consegui carregar um arquivo html dentro de outro arquivo html com a ajuda do JavaScript. Praticamente o código do menu.html vai ser o código padrão de todos os outros arquivos html. Para testar esses códigos, eu tive que limpar o histórico do navegador, fechar o navegador, abrir o navegador, e depois testar o código. Como o código menu.html precisa de duas funções do JavaScript, decidi colocar todas as funções do JavaScript num só arquivo que chamei de java.js: arquivo /HTML/basicoMenu.html <header id=cabecalho class="navbar navbar-light sticky-top bg-light flex-md-nowrap p-0"> Projeto HTML <div class=dropdown> <button type=button class="btn btn-outline-primary dropdown-toggle" data-bs-toggle=dropdown id=btmenu> Menu </button> <ul class="dropdown-menu" > <div id="usuario1" class="d-none"> <li><a class=dropdown-item href='diario.html' >Diário</a></li> <li><a class=dropdown-item href='balancete.html'>Balancete</a></li> <li><a class=dropdown-item href='pagar.html'>Pagar</a></li> <li><a class=dropdown-item href='outros.html'>Outros</a></li> </div> <li><a class=dropdown-item href='orcamento.html'>Orcamento</a></li> <li><a class=dropdown-item href='pessoas.html'>Pessoa</a></li> <li><a class=dropdown-item href='produtos.html'>Produto</a></li> <li><a class=dropdown-item href='venda.html'>Relatório de Venda</a></li> <li><a class=dropdown-item href='mercado.html'>Mercado Pago</a></li> </ul> </div> <div class="dropdown"> <button class="btn btn-outline-primary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false"> <spam id="nomeUsuario"></spam> </button> <ul class="dropdown-menu"> <li><a class="dropdown-item" href="index.php">Sair</a></li> <li><a class="dropdown-item" href="alterarSenha.html">Mudar a senha</a></li> </ul> </div> </header> arquivo /HTML/config.php <?php session_start(); $mysqli=new mysqli("localhost","root","","diario"); if(isset($_POST['email'])) { $email=$_POST['email']; $senha=$_POST['senha']; $query=$mysqli->query("select * from tbusuario where email='$email'"); $usuario=$query->fetch_assoc(); $validaEmail=$usuario['email']; if(!$validaEmail) { echo "Dados inválidos"; exit; } $confirmar=$usuario['password']; $validaSenha=password_verify($senha,$confirmar); if(!$validaSenha) { echo "Dados inválidos!"; exit; } $_SESSION['id']=$usuario['id']; $_SESSION['nome']=$usuario['name']; echo "liberado"; } if(isset($_POST['usuario'])){ $nome=$_SESSION['nome']; $id=$_SESSION['id']; echo json_encode(['nome'=>$nome,'id'=>$id]); } arquivo /HTML/index.html <!DOCTYPE html> <html lang="en"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet"> <title>Projeto HTML</title> <script src="java.js"></script> <body class="d-flex text-center bg-light"> <main class="w-25 m-auto" style="padding-top:160px"> <form id="formLogin" action="javascript:void(0)"> <h1 class="h3 mb-3 fw-normal">Projeto HTML</h1> <div id="mensagem"></div> <div class="form-floating"> <input type="email" class="form-control" name=email id=email autofocus required> <label for="floatingInput">Email</label> </div> <div class="form-floating"> <input type="password" class="form-control" name="senha" id="senha" required ondblclick="senha.type='text'"> <label for="floatingPassword">Duplo click para ver a Senha<label> </div> <input class="w-100 btn btn-lg btn-primary" type="submit" value="Entrar" onclick="login()"> </form> </main></body> arquivo /HTML/java.js function carregarBasicoMenu(){ xhr = new XMLHttpRequest(); externalHTMLURL = 'basicoMenu.html'; xhr.open('GET', externalHTMLURL); xhr.onload = function() { if (xhr.status === 200) { externalHTML = xhr.responseText; menu.innerHTML = externalHTML; } else { console.error('Error loading external HTML:', xhr.statusText); } } xhr.send(); } function login() { xmlhttp=new XMLHttpRequest(); url = "config.php"; formData = new FormData(document.getElementById("formLogin")); xmlhttp.open("POST",url,true); xmlhttp.send(formData); xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ if(xmlhttp.responseText=="liberado"){ window.location.href="menu.html" } mensagem.innerHTML=xmlhttp.responseText; } } } function usuario () { // pega o id e nome do usuário no php e amplia o menu de opções se o usuario = 1 xmlhttp=new XMLHttpRequest(); url = "config.php"; formData = new FormData(); formData.append('usuario',''); xmlhttp.open("POST",url,true); xmlhttp.send(formData); xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ usuario=JSON.parse(xmlhttp.responseText) nomeUsuario.innerHTML=usuario.nome if(usuario.id==1){ usuario1.classList.remove('d-none') usuario1.classList.add('d-block') } } } } arquivo /HTML/menu.html <!DOCTYPE html> <html lang="en"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script> <style> a {color:blue;text-decoration:none} a:hover {color:black;} form {margin:0} .linha {line-height:0px} summary{list-style:none} td {white-space: nowrap} </style> <title>Projeto HTML</title> <body class="text-center bg-light w-25 m-auto"> <script src="java.js"></script> <script>carregarBasicoMenu();usuario()</script> <div id="menu"></div>
  22. Frank K Hosaka

    menu.html

    Usando o método da tentativa e erro, bem como a ajuda da Gemini, consegui montar o meu segundo arquivo html. Eu fiquei surpreso por ele ter funcionado, o código JavaScript funcionou, mesmo que tenha sido colocado no topo da página. Desconfio que o JavaScript conseguiu encontrar o <div id=usuario1> bem como <spam id=nomeUsuario> graças ao marcador <!DOCTYPE html>. Agora o meu desafio é reutilizar esse mesmo código em várias páginas que virão adiante, eu não consegui utilizar o marcador <include> do HTML, assim vou usar o motor xmlhttp do JavaScript. Espero que dê certo. arquivo menu.html <!DOCTYPE html> <html lang="en"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script> <style> a {color:blue;text-decoration:none} a:hover {color:black;} body {align-items: center;background-color: #f5f5f5;} form {margin:0} .linha {line-height:0px} summary{list-style:none} td {white-space: nowrap} </style> <title>Projeto HTML</title> <script> // pega o id e nome do usuário no php e amplia o menu de opções se o usuario = 1 xmlhttp=new XMLHttpRequest(); url = "config.php"; formData = new FormData(); formData.append('usuario',''); xmlhttp.open("POST",url,true); xmlhttp.send(formData); xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ usuario=JSON.parse(xmlhttp.responseText) nomeUsuario.innerHTML=usuario.nome if(usuario.id==1){ usuario1.classList.remove('d-none') usuario1.classList.add('d-block') } } } </script> <body style="max-width:500px;margin:0 auto"> <header id=cabecalho class="navbar navbar-light sticky-top bg-light flex-md-nowrap p-0"> Projeto HTML <div class=dropdown> <button type=button class="btn btn-outline-primary dropdown-toggle" data-bs-toggle=dropdown id=btmenu> Menu </button> <ul class="dropdown-menu" > <div id="usuario1" class="d-none"> <li><a class=dropdown-item href='diario.html' >Diário</a></li> <li><a class=dropdown-item href='balancete.html'>Balancete</a></li> <li><a class=dropdown-item href='pagar.html'>Pagar</a></li> <li><a class=dropdown-item href='outros.html'>Outros</a></li> </div> <li><a class=dropdown-item href='orcamento.html'>Orcamento</a></li> <li><a class=dropdown-item href='pessoas.html'>Pessoa</a></li> <li><a class=dropdown-item href='produtos.html'>Produto</a></li> <li><a class=dropdown-item href='venda.html'>Relatório de Venda</a></li> <li><a class=dropdown-item href='mercado.html'>Mercado Pago</a></li> </ul> </div> <div class="dropdown"> <button class="btn btn-outline-primary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false"> <spam id="nomeUsuario"></spam> </button> <ul class="dropdown-menu"> <li><a class="dropdown-item" href="?ControleLogin.sair">Sair</a></li> <li><a class="dropdown-item" href="?ControleLogin.alterarsenha">Mudar a senha</a></li> </ul> </div> </header> arquivo config.php <?php // ... if(isset($_POST['usuario'])){ $nome=$_SESSION['nome']; $id=$_SESSION['id']; echo json_encode(['nome'=>$nome,'id'=>$id]); }
  23. Encontrei outro código javascript, mas ele tem o mesmo problema que o anterior, eu não sei como encerrar a função assíncrona, mas pelo menos esse código roda pelo menos cinco vezes da maneira esperada: arquivo /Astudy/config.php <?php session_start(); $mysqli=new mysqli("localhost","root","","diario"); if(isset($_POST)) { $email=$_POST['email']; $senha=$_POST['senha']; $query=$mysqli->query("select * from tbusuario where email='$email'"); $usuario=$query->fetch_assoc(); $validaEmail=$usuario['email']; if(!$validaEmail) { echo "Dados inválidos"; exit; } $confirmar=$usuario['password']; $validaSenha=password_verify($senha,$confirmar); if(!$validaSenha) { echo "Dados inválidos!"; exit; } $_SESSION['id']=$usuario['id']; $_SESSION['nome']=$usuario['name']; echo "liberado"; } arquivo /Astudy/index.html <title>Projeto HTML</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet"> <script> function verificar() { xmlhttp=new XMLHttpRequest(); url = "config.php"; formData = new FormData(document.getElementById("formLogin")); xmlhttp.open("POST",url,true); xmlhttp.send(formData); xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ if(xmlhttp.responseText=="liberado"){ window.location.href="ola.html" } mensagem.innerHTML=xmlhttp.responseText; } } } </script> <body class="d-flex text-center bg-light"> <main class="w-25 m-auto"> <form id="formLogin" action="javascript:void(0)"> <h1 class="h3 mb-3 fw-normal">Projeto HTML</h1> <div id="mensagem"></div> <div class="form-floating"> <input type="email" class="form-control" name=email id=email autofocus required> <label for="floatingInput">Email</label> </div> <div class="form-floating"> <input type="password" class="form-control" name="senha" id="senha" required ondblclick="senha.type='text'"> <label for="floatingPassword">Duplo click para ver a Senha<label> </div> <input class="w-100 btn btn-lg btn-primary" type="submit" value="Entrar" onclick="verificar()"> </form> </main></body> arquivo /Astudy/ola.html <meta charset="utf-8"> <h1>Olá, mundo!</h1>
  24. Parece que você está tentando automatizar a interação com o SAP usando VBA. Seu código parece estar no caminho certo, mas há algumas coisas a considerar: Certifique-se de que o caminho para o executável do SAP NWBC (NWBC.exe) esteja correto. Caso contrário, o script não será capaz de abrir o aplicativo corretamente. Use o método Wait com cuidado. Esperar um tempo fixo (como 5 segundos) pode não ser confiável, pois a abertura do SAP pode variar dependendo do sistema e da carga. Considere usar uma abordagem mais robusta para esperar a abertura do SAP completamente. Verifique se o objeto Session foi corretamente inicializado antes de tentar interagir com ele. Caso contrário, suas chamadas pachinko gratis podem falhar. Além disso, certifique-se de que seu código está em conformidade com as políticas de automação do SAP e que você tem permissão para realizar essas ações. Experimente executar o código passo a passo para identificar possíveis problemas e ajustá-lo conforme necessário.
  25. Se você já instalou o Visual Studio e não selecionou essas cargas de trabalho, você pode modificar a instalação do Visual Studio para adicionar essas cargas de trabalho. Basta abrir o Visual Studio Installer, selecionar " slot rico" ao lado da instância do Visual Studio que deseja alterar e selecionar as cargas de trabalho relevantes. Após a modificação, reinicie o Visual Studio e você deve ter a opção de criar projetos .NET Core.
  26. Para desenvolver uma seção de vídeos aulas em PHP, você pode começar criando um banco de dados para armazenar informações sobre os vídeos e o progresso dos usuários. Para controlar as aulas assistidas, você pode usar uma combinação de PHP e JavaScript. Por exemplo, ao carregar uma página de vídeo, você pode enviar uma solicitação para o servidor PHP para registrar que o usuário assistiu a aula. Isso pode ser feito utilizando slot rico para enviar a solicitação ao servidor sem recarregar a página. Ao registrar a aula assistida, você pode atualizar o banco de dados com essa informação.
  27. O addslashes não funcionou comigo, assim voltei no esquema anterior, não usar as aspas dentro de uma string. Tenho um cliente chamado D'blacks, eu usei o acento agudo no lugar da apóstrofe.
  28. Bom dia @celsomonteiro Pelo que entendi do vídeo são formulários utilizando VBA no excel. Você já apreendeu a criar formulários? (ou apenas quer o formulário funcionando na sua planilha?)
  29. ** O código abaixo tem problema, ele só funciona uma vez. A Gemini disse que eu não consegui encerrar o código, estou procurando outro código JavaScript que funcine pelo menos umas cinco vezes *** Existem muitos exemplos de JavaScript que simulam a requisição POST para o PHP, mas a maioria não deixa o PHP utilizar a variável $_POST. Acho que esse é o único caso em que o PHP pode pegar as informações pela variável $_POST: arquivo index.html <script> async function teste() { nome=nome.value email=email.value formData=new FormData() formData.append('nome',nome) formData.append('email',email) resposta = await fetch("config.php", { method: "POST", body: formData }) servidor = await resposta.json() php.innerHTML=servidor.mensagem } </script> <table style="width:500px;margin:0 auto"> <tr><td>Nome<td><input id="nome" value="Frank"> <tr><td>Email<td><input id="email" value="frank@gmail.com"> <tr><td><td><input type="submit" onclick="teste()"> <tr><td><td id="php"> </table> arquivo config.php <?php $nome=$_POST['nome']; $email=$_POST['email']; $resposta=['mensagem'=>"Dados recebidos: $nome, $email"]; echo json_encode($resposta);
  30. Eloquent é uma gramática utilizada pelo Laravel, e hoje eu queria atualizar a consulta do produto utilizando a consulta em vários campos. A minha primeira tentativa não deu certo, assim eu pedi ajuda para a Gemini, e fiquei surpreso com a beleza da gramática do Eloquent. Ele é bem simples, agora o meu desafio é tentar fazer algo semelhante em PHP. <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\tbentraprod; use App\Models\tbdiario; use App\Models\tbhistprod; use App\Models\tbprod; use App\Models\tbpessoa; class ProdutoController extends Controller { public function produto(Request $request) { $filtro=session('filtro'); if($filtro) { $procurar=session('filtro'); if(!is_numeric($procurar)) { $procurar=str_replace(" ","%",$procurar); $prod=tbprod::where('prod','like','%'.$procurar.'%')->orderBy('prod')->get(); } else { $prod=tbprod::where('codprod',$procurar) ->orWhere('codforn','like','%'.$procurar.'%') ->orWhere('codbar','like','%'.$procurar.'%')->get(); } } else { $prod=tbprod::orderBy('prod')->take(15)->get(); } if($request->input("procurar")) { $procurar=$request->input("procurar"); if(!is_numeric($procurar)) { $procurar=str_replace(" ","%",$procurar); $prod=tbprod::where('prod','like','%'.$procurar.'%')->orderBy('prod')->get(); } else { $prod=tbprod::where('codprod',$procurar) ->orWhere('codforn','like','%'.$procurar.'%') ->orWhere('codbar','like','%'.$procurar.'%')->get(); } session(['filtro'=>$filtro]); } return view('produto',compact('prod')); }
  1. Mais Resultados


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...