Ir para conteúdo
Fórum Script Brasil

Todas Atividades

Atualizada automaticamente

  1. Recentemente
  2. Eu não consegui salvar um arquivo xml dentro do MySQL, na tabela tblivroentrada. Por outro lado, eu tenho um código em PHP que conseguiu abrir o arquivo xml, mas ele não salva coisa alguma no MySQL. Assim, eu deduzi que o problema é o tamanho do campo tipo TEXT, e o Copilot disse que existe restrição nesse tipo de campo, o máximo que ele suporta é 65.535 bytes, e o XML que eu tenho é de 66.091 bytes. O Copilot disse que o MySQL tem um tipo de campo que suporta mais bytes, mas ao invés de mexer no MySQL, eu decidi mexer no XML. Usei o VS Code. Levei um susto, pensei que iria ver centenas de linhas, mas só vi dez linhas. Depois eu vi que a linha era bem longa, e eu apaguei o trecho <x509Certificate>...</x509Certificate> e assim consegui reduzir o arquivo para 63.216 bytes bem como salvar o que restou do XML dentro do MySQL.
  3. Hoje
  4. Boa ideia — cuidado só para não atrapalhar a digitação. Talvez um duplo toque no Space funcione bem Driving Mad IO
  5. No MySQL / condomínio encontrei três campos na tabela movimentaçôes: nome_visitante, placa_veiculo, residência_destino, esses três campos deveriam estar na tabela visitante e não na tabela movimentações. Aconselho esquecer esses campos por enquanto. Há dois tipos de pessoas que entram e saem pela portaria do condomínio: o morador e o visitante. Como vamos distinguir um do outro? Vamos esquecer o visitante, e só ficar com o morador, para simplificar. Tem morador que é pobre e não tem carro. Tem morador que é rico e tem 50 carros. Como é que vamos cadastrar o morador? Tem morador que é pobre e só tem um apartamento, e tem morador que é rico e que tem 50 apartamentos. Viu como é complicado montar um banco de dados? A regra do banco de dados é criar apenas uma tabela para cada tipo de tarefa. A minha sugestão é mudar a tabela visitante para tabela pessoa, e lá dentro você cria um campo para saber quem é morador e quem é visitante. Outra sugestão é eliminar os campos hora entrada e hora saída e incorporar essa informação nos campos dia entrada e dia saída, mudando o tipo de campo de Date para Datetime. Claro que fazer um controle de entrada e saída só dos moradores é bem limitado, mas na minha opinião, primeiro você resolve o problema dos moradores e depois se aventura a tentar registrar os visitantes. Imagine que um morador entra com o seu carro, e ele está com a esposa e seu filho: como vamos registrar os três no registro de movimentação?
  6. Eu uso o PHP 8.4.0 (usei o comando php -v) e eu precisei alterar a linha 8 e 9 do cadastro_visitante.php assim: $nome = filter_input(INPUT_POST, 'nome'); $documento = filter_input(INPUT_POST, 'documento'); pois a constante FILTER_SATINIZE_STRING foi descontinuado.
  7. Yesterday
  8. Desenvolvi a nova versão para o sistema de portaria que fiz em 2017, hoje trago uma versão melhor mais rapida e fluente.. segue todas as tela do sistema se alguém quiser fazer melhoras e contribuir eu agradeço.. utilzando xamp mais atual com php 8 .. para login do sistema usuario: adm@adm.com senha: 123 a senha no banco de dados esta em hash usando fpdf e phpmailer (esse ainda não consegui fazer funcionar pra pessoa recuperar a senha ou cadastrar uma nova mas o sistema esta todo implantado..)https://drive.google.com/file/d/1Udo-PV4HAt6k3UGBICqlga6mwDAQx7FE/view?usp=sharing vou hospedar o script completo pra download..
  9. Última semana
  10. Já passei exatamente por isso quando comecei a brincar com PHPMailer levei um susto achando que tinha quebrado tudo no site 😅. Na verdade, aquele monte de linhas é só o debug SMTP, que aparece porque no seu código está ativado com: $mail->SMTPDebug = SMTP::DEBUG_SERVER; Eu só descobri fuçando, mas depois que troquei para 0 (zero), sumiu da tela e o site voltou a ficar “limpo”. Foi um alívio enorme, parecia que tinha finalmente entendido como a coisa funcionava. Minha dica de experiência: só deixo o DEBUG_SERVER ativado em ambiente de teste, nunca em lovemoney produção, porque senão o usuário final vê esses logs todos.
  11. Mais Cedo
  12. Não encontrei como dar o post como Resolvido. Mas deixo aqui meu muito obrigado
  13. Mexer no <body> ou mexer na fonte é uma dor de cabeça. A melhor solução que eu encontrei foi mexer na escala, assim: <!DOCTYPE html> <html lang="en"> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <script src="https://cdn.tailwindcss.com"></script> <script> window.addEventListener('DOMContentLoaded', () => { const width = window.innerWidth; const height = window.innerHeight; const e=document.getElementById('escala') // alert(width+" "+height) // Galaxy Tab S10 Lite no modo retrato if (width == 880 && height == 1252) { e.classList.add('scale-[1.25]') } // Galaxy Tab S10 Lite no modo paisagem if (width == 1408 && height == 724) { e.classList.add('scale-[1.25]') } }); </script> <link rel="icon" type="image/svg+xml" sizes="any" href="https://www.php.net/favicon.svg?v=2"> <title>Projeto Classe</title> <body class="w-[630px] m-0 m-auto"> <div id="escala" class="transform scale-[1] origin-top">
  14. consegui mexer no style. segue como ficou agora.. <style> table { border: 3px solid #ecececff; border-collapse: collapse; background-color: #f5f5f5; width: 30%; margin-bottom: 20px; } th, td { padding: 8px; text-align: left; } th { background-color: #333; color: #fff; } tr:nth-child(even) { background-color: #ddd; } tr:hover { background-color: #ccc; } </style> so as linhas q não apareceu mas já e alguma coisa.. vamos fuçando q sai kkkkkkkkkk
  15. não todos são a mesma conta local. ate porque so eu uso o pc.. vou instalar o wampserv pra testar nele.. vai que o xampp ta com pau.. vou por o wampserv no meu pc de casa e testo..
  16. O problema de arquivo já não é a minha praia, espero que você tenha mais sorte e encontre alguém que entenda do assunto. Graças a Deus, o WampServ nunca me deu esse tipo de trabalho. Mas, por curiosidade, você usa contas diferentes para entrar no Windows no PC da sua casa? Se for o caso, só quem criou o arquivo é que tem permissão de abrir. Aqui no notebook, eu só tenho a minha conta.
  17. rapaz não sei o que acontece viu. aqui no meu computador so da erro ae já no computador do meu trabalho roda lindo e olha que é o xampp e vscode instalado.. agora ficou tudo dentro da tabela ae aqui não aparece as fotos ae no outro pc aparece tudo kkkkkkkkkkk vai saber.. amanha eu testo no pc do escritorio pra ver.. valeu por enquanto.. tb não sou bom em css mas vou mexendo aki ali ate q fica certo..
  18. arquivo etiqueta.php <?php date_default_timezone_set('America/Sao_Paulo'); ?> <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Etiquetas dos Cadastros</title> <meta http-equiv="Content-Type" content="charset=utf-8" /> </head> <style> table { border-collapse: collapse; border: 3px double black; /* Borda externa dupla */ } th, td { border: 2px double gray; /* Bordas internas duplas */ padding: 8px; -align: center; } </style> <body> <p><button type="button" onclick="window.open(href='geraetiqueta.php', 'popup', 'fullscreen=1, height=680px, width=900px')">GERAR PDF</button ></p> <h1>Etiquetas de Cadastros</h1> <?php $mysqli=new mysqli("localhost","root","","polo"); $res=$mysqli->query("select * from tb_cadastro"); ?> <table> <tr> <th>Foto</th> <th>Matrícula</th> <th>Nome</th> <th>Tipo</th> </tr> <?php if($res->num_rows > 0) : ?> <?php while($row = $res->fetch_object()) : ?> <tr> <?php $path = __DIR__ . "/" . $row->foto; $type = mime_content_type($path); $data = base64_encode(file_get_contents($path)); $src = "data:$type;base64,$data"; ?> <td><img src="<?= $src ?>" width="100" /></td> <td><?=$row->matricula?></td> <td><?=$row->nome?></td> <td><?=$row->tipo?></td> </tr> <?php endwhile; ?> </table> <?php else: echo 'Nenhum dado recebido'; endif ?> </body> </html> Eu sou péssimo com CSS. Não consegui fazer borda dupla.
  19. O meu $row['foto'] retorna coisa do tipo fotos/foto1.webp - estamos cadastrando de maneira diferente, no banco de dados eu incluo o nome do subdiretório, e você não, e assim o php não consegue encontrar mesmo.
  20. mas agora faz um teste ae no seu.. quando se tem mais cadastros um fica dentro das tabelas ou outros ficam de fora.. tentei corrigir mas mesmo assim fica de fora..
  21. nesse ae o meu pega o caminho :: 404 Not Found localhost/polo/nomeimagem.jpg
  22. corri o erro agora apareceu a foto apenas acrescentei um ./ <?php $path = __DIR__ . "./fotos/" . $row->foto;
  23. não entendi como assim coloca a culpa em você... não falei isso.. so mudei a barra "/" por "\" ae da erro na linha $src = "data:$type;base64,$data"; ?> Parse error: syntax error, unexpected identifier "data" in C:\xampp\htdocs\polo\etiqueta.php on line 32
  24. Tentei importar a solução PHP no Livewire, mas não deu certo com o Tablet. Mas deu certo com o micro, mas a resolução do micro mudou depois que fiz a atualização do Windows hoje de manhã. Ontem, a minha resolução do notebook era 1360x599, hoje ele está com 1511x665. Em teoria, o código JavaScript não deveria funcionar no Livewire, porque ele é um JavaScript (Ajax) camuflado com a linguagem PHP. É por isso que continuo usando o PHP, eu não confio no Livewire, apesar dele ser muito bacana. arquivo resources > views > components > layouts > app.blade.php <!DOCTYPE html> <html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="shortcut icon" href="{{ asset('favicon.ico?v=2') }}"> @vite(['resources/css/app.css', 'resources/js/app.js']) <title>{{ $titulo ?? 'Menu' }}</title> </head> <script> window.addEventListener('DOMContentLoaded', () => { const width = window.innerWidth; const height = window.innerHeight; // alert(width+" "+height) // Galaxy Tab S10 Lite // não funciona no Livewire if (width == 880 && height == 1252) { document.body.classList.add('w-[800px]') } // Galaxy Book 4 if (width == 1511 && height == 665) { document.body.classList.add('text-sm') } }); </script> <body class="w-[630px] m-0 m-auto text-lg"> <header class="bg-white shadow-sm flex items-center justify-between font-normal"> <flux:heading class="px-2 font-normal">Livewire</flux:heading> <div class="relative group z-10"> <flux:button icon:trailing="chevron-down" variant="ghost" class="text-gray-500"> {{ $titulo ?? 'Menu' }} </flux:button> <div class="hidden group-hover:block absolute bg-white text-gray-800 rounded-md shadow-lg w-45 "> @if(auth()->user()->id == 1) <div class="flex space-x-4 px-4 py-2"> <a href="/previsao" wire:navigate class="text-gray-500 transition-colors"> Previsão </a> <a href="/diario" wire:navigate class="px-3 text-gray-500 transition-colors"> Diário </a> </div> <a class="block px-4 py-2 text-gray-500" href=/outros wire:navigate>Outros</a> @endif <a class="block px-4 py-2 text-gray-500" href='/orcamento/0/1' wire:navigate>Orçamento</a> <a class="block px-4 py-2 text-gray-500" href=/pagar wire:navigate>Pagar</a> <a class="block px-4 py-2 text-gray-500" href=/receber wire:navigate>Receber</a> <a class="block px-4 py-2 text-gray-500" href=/pessoa wire:navigate>Pessoa</a> <a class="block px-4 py-2 text-gray-500" href=/produto/1 wire:navigate>Produto</a> <a class="block px-4 py-2 text-gray-500" href=/venda wire:navitate>Relatório de Venda</a> </div> </div> <div class="relative group"> <flux:button icon:trailing="chevron-down" variant="ghost" class="text-gray-500"> {{ auth()->user()->nome}} </flux:button> <div class="hidden group-hover:block absolute bg-white text-gray-500 rounded-md shadow-lg w-40"> <flux:button href="/logout" variant="ghost" class="text-gray-500">Sair</flux:button> <flux:button href=# variant="ghost" class="text-gray-500">Mudar Senha</flux:button> </div> </div> </header> @livewireScripts {{ $slot }} </script> </body> </html>
  25. Hahahaha... eu também tive essa dor de cabeça, mas se você prestar atenção na mensagem de erro, dá para ver que ele está procurando a foto no lugar errado. A foto não está na pasta polo, e sim na pasta polo/fotos/. Reveja o seu código, ele não contempla o subdiretório fotos no diretório polo. No meu caso, eu cadastrei o endereço do arquivo dentro do banco de dados, na tb_cadastro, no campo foto, assim: fotos/foto1.webp (veja se esse arquivo existe com o mesmo nome através do gerenciador de arquivos do Windows! qualquer letra errada, tudo dá errado). No meu caso, precisei acrescentar "\" no código. Eu faço de um jeito, e faz de outro jeito, e depois coloca a culpa em mim. Isso sim está errado!!! Hahahahaha...
  26. cara tu e bom em.. vou estudar o codigo e ver onde eu tva errando kkkkkkkkk mas com certeza tem muita diferença.. valeu 👍 so copiei e colei o seu e o meu deu erro kkkkkkkk tem a pasta fotos e tem a pasta tmp ae ele da como se não tivesse encontrado a pasta ou as fotos.. olha..
  27. O meu projeto Orçamento foi feito para o tablet Galaxy S5e do meu irmão. Na base da tentativa e erro, eu descobri que ele tem 630 pixels, e assim desenhei todo o projeto baseado nesse número. Mas nessa semana eu comprei um tablet Galaxy S10 Lite, o meu projeto coube nele, mas sobrou um monte de espaço pelos lados. Com a ajuda do window.innerWidth e o window.innerHeight do JavaScript descobri que o S10 Lite tem 880 x 1252 de resolução. Na base da improvisação, eu pedi para o projeto usar um <body> de 800 pixels, quando ele for trabalhar dentro do S10 Lite, e assim eu tive muita sorte, todo o meu projeto de 630 pixels foram espalhados no espaço de 800 pixels. Claro que existe muita tecnologia como o CSS responsivo. O problema é que eu nem sei mexer com o CSS básico, ainda. *** Escrevi besteira: uma coisa é medir a resolução do micro pelo localhost, e outra bem diferente é medir através da Hostinger *** arquivo appView.php <!DOCTYPE html> <html lang="en"> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <script src="https://cdn.tailwindcss.com"></script> <link rel="icon" type="image/svg+xml" sizes="any" href="https://www.php.net/favicon.svg?v=2"> <style> summary { list-style:none } </style> <script> window.addEventListener('DOMContentLoaded', () => { const width = window.innerWidth; const height = window.innerHeight; // alert(width+" "+height) // Galaxy Tab S10 Lite if (width == 880 && height == 1252) { document.body.classList.add('w-[800px]') } // Galaxy Book 4 if (width == 1360 && height == 599) { document.body.classList.add('text-sm') } }); </script> <title>Projeto Classe</title> <body class="w-[630px] m-0 m-auto text-lg">
  28. Veja se na tb_cadastro existe algum visitante com o id=34, eu não tenho: <?php $conn = new mysqli("localhost", "root", "", "polo"); $result = $conn->query("select * from tb_cadastro where id=5"); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo "<div style='width:500px;margin:0 auto'>"; echo "Nome da Etiqueta: " . $row["nome"]. "<br>"; echo "<img src=". $row['foto']. " width=100px alt='Foto da Etiqueta'></div>"; } }
  29. Esse deu trabalho, tive que mexer na etiqueta.php e no geraetiqueta.php, a foto coloquei na pasta fotos, e no campo foto coloquei coisa do tipo fotos/foto1.webp: etiqueta.php <?php date_default_timezone_set('America/Sao_Paulo'); ?> <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Etiquetas dos Cadastros</title> <meta http-equiv="Content-Type" content="charset=utf-8" /> </head> <body> <p><button type="button" onclick="window.open(href='geraetiqueta.php', 'popup', 'fullscreen=1, height=680px, width=900px')">GERAR PDF</button ></p> <h1>Etiquetas de Cadastros</h1> <?php $mysqli=new mysqli("localhost","root","","polo"); $res=$mysqli->query("select * from tb_cadastro"); if($res->num_rows > 0) : ?> <table border='1'> <?php while($row = $res->fetch_object()) : ?> <tr> <th>Foto</th> <th>Matrícula</th> <th>Nome</th> <th>Tipo</th> </tr> <tr> <?php $path = __DIR__ . "/" . $row->foto; $type = mime_content_type($path); $data = base64_encode(file_get_contents($path)); $src = "data:$type;base64,$data"; ?> <td><img src="<?= $src ?>" width="100" /></td> <td><?=$row->matricula?></td> <td><?=$row->nome?></td> <td><?=$row->tipo?></td> </tr> </table> <?php endwhile; else: echo 'Nenhum dado recebido'; endif ?> </body> </html> geraetiqueta.php <?php require __DIR__ . '/vendor/autoload.php'; use Dompdf\Dompdf; use Dompdf\Options; $options = new Options(); ob_start(); include 'etiqueta.php'; $html=ob_get_clean(); $options->setIsRemoteEnabled(true); $dompdf = new Dompdf($options); $dompdf->loadHtml($html); $dompdf->setPaper('A4', 'portrait'); $dompdf->render(); $output = $dompdf->output(); file_put_contents("./tmp/etiqueta.pdf", $output); die("<script>location.href='./tmp/etiqueta.pdf';</script>"); ?>
  30. obrigado por sua dica. assim vou aprendendo.. agora to querendo apresentar a foto antes da matricula.. mas so aparece um quadrado.. a pasta temp já tem no diretorio..
  1. Mais Resultados


  • Estatísticas dos Fóruns

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