Ir para conteúdo
Fórum Script Brasil

Todas Atividades

Atualizada automaticamente

  1. Recentemente
  2. 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); ?>
  3. Hoje
  4. 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
  5. Yesterday
  6. 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}"; } ?>
  7. Última semana
  8. 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.
  9. <?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>
  10. 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
  11. <?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>
  12. 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>
  13. Resolve-se com javascript e AJAX
  14. 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>
  15. Mais Cedo
  16. 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.
  17. 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!
  18. 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.
  19. 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.
  20. 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)
  21. <details> é uma excelente ferramenta para mostrar os detalhes de um item, desde que você não invente de colocar um monte de coisas dentro do <summary>, foi o que eu fiz, assim precisei abandonar essa ferramenta para criar a seguinte gambiarra: <script src="https://cdn.tailwindcss.com"></script> <script> function exibir(element) { const filhos=element.querySelectorAll("div") filhos.forEach(filho => { filho.classList.toggle("hidden"); }) } </script> <?php $historico="Detalhe da lista"; ?> <div class="w-[200px] m-0 m-auto" onclick="exibir(this)"> Lista <div class="hidden"><?=$historico?></div> <div class="hidden"><?=$historico?></div> </div> O Copilot é uma excelente ferramenta para fazer gambiarra.
  22. Faz muito tempo que tenho pensado no meu projeto orçamento dentro de um celular. O problema é que a tela do celular é bem pequena, mal dá para colocar duas colunas, no modo retrato. No Galaxy Note 10, eu consegui <div class="w-[630px]"></div> no modo paisagem e é baseado nesse limite é que estou fazendo o meu projeto. O problema é que não dá para exibir toda a informação numa só coluna, posso mostrar alguma coisa usando o CSS truncate do Tailwind. Mas e se o usuário quiser ver tudo? Desde 2020 é que estou quebrando a cabeça, só hoje é que surgiu essa ideia: <script src="https://cdn.tailwindcss.com"></script> <script> function expandir() { const descricao = document.getElementById("descricao"); descricao.classList.toggle("truncate"); } </script> <?php $historico="Vamos ver se isso funciona"; ?> <div class="w-[100px] m-0 m-auto"> <div class="w-[100px] odd:bg-gray-200">Teste</div> <div id="descricao" class="w-[100px] truncate" onclick="expandir()"><?=$historico?></div> <div class="w-[100px] odd:bg-gray-200">Teste</div> </div> / ==================== / A ideia é péssima, coloquei o código JavaScript no config.php, e em outro código tentei invocar a função expandir. Não deu certo. O código só funciona se existir apenas um único <div> com o id="descricao". Isso é bem constrangedor, o Copilot corrigiu o código: <script src="https://cdn.tailwindcss.com"></script> <script> function expandir(element) { element.classList.toggle("truncate"); } </script> <?php $historico="Vamos ver se isso funciona"; ?> <div class="w-[100px] m-0 m-auto"> <div class="w-[100px] odd:bg-gray-200">Teste</div> <div class="w-[100px] truncate" onclick="expandir(this)"><?=$historico?></div> <div class="w-[100px] odd:bg-gray-200">Teste</div> </div> /===== Outra ideia péssima, eu tive que tirar a função expandir( ) do JavaScript do config.php e colocar em cada código que precisava dessa função. Usar o config.php pareceu uma boa ideia, mas ele acabou aparecendo no cabeçalho de um arquivo csv e a Bling se recusou a receber por estar fora do layout esperado.
  23. Pessoal boa tarde. Não entendo muito de PHp, vou buscando e configurando. Peguei um script onde faço o cadastro e ele envia um e-mail de confirmação e recarrega a tela. mas quando recarrega vem isso na tela do site. 2025-08-04 15:01:02 SERVER -> CLIENT: 220 ESMTP smtp.hostinger.com 2025-08-04 15:01:02 CLIENT -> SERVER: EHLO meucarrobrasil.com.br 2025-08-04 15:01:02 SERVER -> CLIENT: 250-smtp.hostinger.com250-PIPELINING250-SIZE 48811212250-ETRN250-AUTH PLAIN LOGIN250-ENHANCEDSTATUSCODES250-8BITMIME250-DSN250 CHUNKING 2025-08-04 15:01:02 CLIENT -> SERVER: AUTH LOGIN 2025-08-04 15:01:02 SERVER -> CLIENT: 334 VXNlcm5hbWU6 2025-08-04 15:01:02 CLIENT -> SERVER: [credentials hidden] 2025-08-04 15:01:02 SERVER -> CLIENT: 334 UGFzc3dvcmQ6 2025-08-04 15:01:02 CLIENT -> SERVER: [credentials hidden] 2025-08-04 15:01:02 SERVER -> CLIENT: 235 2.7.0 Authentication successful 2025-08-04 15:01:02 CLIENT -> SERVER: MAIL FROM:<[email protected]> 2025-08-04 15:01:02 SERVER -> CLIENT: 250 2.1.0 Ok 2025-08-04 15:01:02 CLIENT -> SERVER: RCPT TO:<[email protected]> 2025-08-04 15:01:02 SERVER -> CLIENT: 250 2.1.5 Ok 2025-08-04 15:01:02 CLIENT -> SERVER: DATA 2025-08-04 15:01:02 SERVER -> CLIENT: 354 End data with <CR><LF>.<CR><LF> 2025-08-04 15:01:02 CLIENT -> SERVER: Date: Mon, 4 Aug 2025 12:01:02 -0300 2025-08-04 15:01:02 CLIENT -> SERVER: To: "[email protected]" <[email protected]> 2025-08-04 15:01:02 CLIENT -> SERVER: From: "[email protected]" <[email protected]> 2025-08-04 15:01:02 CLIENT -> SERVER: Reply-To: "[email protected]" <[email protected]> 2025-08-04 15:01:02 CLIENT -> SERVER: Subject: =?iso-8859-1?Q?Confirma=E7=E3o_de_Cadastro_de_Vendedor?= 2025-08-04 15:01:02 CLIENT -> SERVER: Message-ID: <[email protected]> 2025-08-04 15:01:02 CLIENT -> SERVER: X-Mailer: PHPMailer 6.9.1 (https://github.com/PHPMailer/PHPMailer) 2025-08-04 15:01:02 CLIENT -> SERVER: MIME-Version: 1.0 2025-08-04 15:01:02 CLIENT -> SERVER: Content-Type: text/html; charset=iso-8859-1 2025-08-04 15:01:02 CLIENT -> SERVER: Content-Transfer-Encoding: 8bit 2025-08-04 15:01:02 CLIENT -> SERVER: 2025-08-04 15:01:02 CLIENT -> SERVER: 2025-08-04 15:01:02 CLIENT -> SERVER: Obrigado por ser cadastrar!<br> 2025-08-04 15:01:02 2025-08-04 15:01:02 CLIENT -> SERVER: Clique neste link para ativar sua conta:<br> 2025-08-04 15:01:02 CLIENT -> SERVER: <a href="http://meucarrobrasil.com.br/[email protected]&token=4fffd328c87b1fcd9addaac8c67d6f1a">http://meucarrobrasil.com.br/[email protected]&token=4fffd328c87b1fcd9addaac8c67d6f1a</a> 2025-08-04 15:01:02 CLIENT -> SERVER: 2025-08-04 15:01:02 CLIENT -> SERVER: . 2025-08-04 15:01:04 SERVER -> CLIENT: 250 2.0.0 Ok: queued as 4bwfrZ6YL9z5Z5qk 2025-08-04 15:01:04 CLIENT -> SERVER: QUIT 2025-08-04 15:01:04 SERVER -> CLIENT: 221 2.0.0 Bye O e-mail vem certo, mas não sei como oculto isso vou colocar o script dessa tela. <?php require_once('header.php'); use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; ?> <?php $statement = $pdo->prepare("SELECT * FROM tbl_settings WHERE id=1"); $statement->execute(); $result = $statement->fetchAll(PDO::FETCH_ASSOC); foreach ($result as $row) { $banner_registration = $row['banner_registration']; } $statement = $pdo->prepare("SELECT * FROM tbl_settings WHERE id=1"); $statement->execute(); $result = $statement->fetchAll(PDO::FETCH_ASSOC); foreach ($result as $row) { $recaptcha_site_key = $row['recaptcha_site_key']; $recaptcha_status = $row['recaptcha_status']; } ?> <?php if (isset($_POST['form1'])) { $valid = 1; if(empty($_POST['seller_name'])) { $valid = 0; $error_message .= "O Nome não pode estar vazio!\\n"; } if(empty($_POST['seller_email'])) { $valid = 0; $error_message .= "O E-mail não pode estar vazio!\\n"; } else { if (filter_var($_POST['seller_email'], FILTER_VALIDATE_EMAIL) === false) { $valid = 0; $error_message .= 'Insira um E-mail válido.\\n'; } else { $statement = $pdo->prepare("SELECT * FROM tbl_seller WHERE seller_email=?"); $statement->execute(array($_POST['seller_email'])); $total = $statement->rowCount(); if($total) { $valid = 0; $error_message .= 'O E-mail informado já está cadastrado em nosso sistema!\\n'; } } } if(empty($_POST['seller_address'])) { $valid = 0; $error_message .= "O Endereço não pode estar vazio!\\n"; } if(empty($_POST['seller_city'])) { $valid = 0; $error_message .= "A Cidade não pode estar vazio!\\n"; } if(empty($_POST['seller_country'])) { $valid = 0; $error_message .= "O País não pode estar vazio!\\n"; } if( empty($_POST['seller_password']) || empty($_POST['seller_re_password']) ) { $valid = 0; $error_message .= "A Senha não pode estar vazia!\\n"; } if( !empty($_POST['seller_password']) && !empty($_POST['seller_re_password']) ) { if($_POST['seller_password'] != $_POST['seller_re_password']) { $valid = 0; $error_message .= "As Senhas não Conferem!\\n"; } } if($recaptcha_status == 'On'): $g_recaptcha = $_POST['g-recaptcha-response']; if($g_recaptcha == '') { $valid = 0; $error_message .= 'Verifique o Código!\\n'; } endif; if($valid == 1) { $token = md5(uniqid(rand(), true)); $now = time(); // saving into the database $statement = $pdo->prepare("INSERT INTO tbl_seller (seller_name,seller_email,seller_phone,seller_address, seller_city,seller_state,seller_country,seller_password,seller_token,seller_time,seller_access) VALUES (?,?,?,?,?,?,?,?,?,?,?)"); $statement->execute(array($_POST['seller_name'],$_POST['seller_email'],$_POST['seller_phone'],nl2br($_POST['seller_address']),$_POST['seller_city'],$_POST['seller_state'],$_POST['seller_country'],md5($_POST['seller_password']),$token,$now,0)); $verify_link = BASE_URL.'verify.php?email='.$_POST['seller_email'].'&token='.$token; $msg = ' Obrigado por ser cadastrar!<br> Sua conta foi criada, você pode fazer login com as suas credenciais depois de ativar sua conta clicando no link abaixo.<br><br> Clique neste link para ativar sua conta:<br> <a href="'.$verify_link.'">'.$verify_link.'</a>'; $statement = $pdo->prepare("SELECT * FROM tbl_setting_email WHERE id=1"); $statement->execute(); $result = $statement->fetchAll(); foreach ($result as $row) { $send_email_from = $row['send_email_from']; $receive_email_to = $row['receive_email_to']; $smtp_host = $row['smtp_host']; $smtp_port = $row['smtp_port']; $smtp_username = $row['smtp_username']; $smtp_password = $row['smtp_password']; } //Load Composer's autoloader require 'vendor/autoload.php'; //Create an instance; passing `true` enables exceptions $mail = new PHPMailer(true); try { //Server settings $mail->SMTPDebug = SMTP::DEBUG_SERVER; //Enable verbose debug output $mail->isSMTP(); //Send using SMTP $mail->Host = $smtp_host; //Set the SMTP server to send through $mail->SMTPAuth = true; //Enable SMTP authentication $mail->Username = $smtp_username; //SMTP username $mail->Password = $smtp_password; //SMTP password $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; //Enable implicit TLS encryption $mail->Port = $smtp_port; //TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS` //Recipients $mail->setFrom($send_email_from, $send_email_from); $mail->addAddress($_POST['seller_email'], $_POST['seller_email']); //Add a recipient $mail->addReplyTo($receive_email_to, $receive_email_to); //Content $mail->isHTML(true); //Set email format to HTML $mail->Subject = mb_convert_encoding('Confirmação de Cadastro de Vendedor', 'ISO-8859-1', 'UTF-8'); $mail->Body = mb_convert_encoding($msg, 'ISO-8859-1', 'UTF-8'); $mail->send(); } catch (Exception $e) { echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}"; } unset($_POST['seller_name']); unset($_POST['seller_email']); unset($_POST['seller_phone']); unset($_POST['seller_address']); unset($_POST['seller_city']); unset($_POST['seller_state']); unset($_POST['seller_country']); $success_message = 'Seu Cadastro está concluído. Acesse seu E-mail para confirmar seu Cadastro.'; } } ?> <div class="banner-slider" style="background-image: url(<?php echo BASE_URL.'assets/uploads/'.$banner_registration; ?>)"> <div class="bg"></div> <div class="bannder-table"> <div class="banner-text"> <h1>Cadastro de Vendedor</h1> </div> </div> </div> <div class="login-area bg-area"> <div class="container"> <div class="row"> <div class="col-md-offset-4 col-md-5"> <?php if($error_message != '') { echo "<script>alert('".$error_message."')</script>"; } if($success_message != '') { echo "<script>alert('".$success_message."')</script>"; } ?> <div class="login-form"> <form action="" method="post"> <div class="form-row"> <div class="form-group"> <label for="">Nome Completo ou Nome da Garagem*</label> <input type="text" class="form-control" name="seller_name" placeholder="Nome Completo" value="<?php if(isset($_POST['seller_name'])){echo $_POST['seller_name'];} ?>"> </div> <div class="form-group"> <label for="">E-mail*</label> <input type="email" class="form-control" name="seller_email" placeholder="Endereço de E-mail" value="<?php if(isset($_POST['seller_email'])){echo $_POST['seller_email'];} ?>"> </div> <div class="form-group"> <label for="">Telefone (com DDD)*</label> <input type="text" class="form-control" name="seller_phone" placeholder="Seu Whatsapp" value="<?php if(isset($_POST['seller_phone'])){echo $_POST['seller_phone'];} ?>"> </div> <div class="form-group"> <label for="">Endereço*</label> <textarea name="seller_address" class="form-control" cols="30" rows="10" placeholder="Seu Endereço/Endereço de sua Loja" style="height:120px;"><?php if(isset($_POST['seller_address'])){echo $_POST['seller_address'];} ?></textarea> </div> <div class="form-group"> <label for="">País*</label> <input type="text" class="form-control" name="seller_country" placeholder="País" value="<?php if(isset($_POST['seller_country'])){echo $_POST['seller_country'];}else{echo "Brasil";} ?>" readonly> </div> <div class="form-group"> <label for="">Estado*</label> <select id="seller_state" name="seller_state" class="form-control" onchange="searchCities(this.value)"> <option value="AC" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='AC') {echo 'selected';}} ?>>Acre</option> <option value="AL" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='AL') {echo 'selected';}} ?>>Alagoas</option> <option value="AP" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='AP') {echo 'selected';}} ?>>Amapá</option> <option value="AM" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='AM') {echo 'selected';}} ?>>Amazonas</option> <option value="BA" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='BA') {echo 'selected';}} ?>>Bahia</option> <option value="CE" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='CE') {echo 'selected';}} ?>>Ceará</option> <option value="DF" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='DF') {echo 'selected';}} ?>>Distrito Federal</option> <option value="ES" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='ES') {echo 'selected';}} ?>>Espírito Santo</option> <option value="GO" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='GO') {echo 'selected';}} ?>>Goiás</option> <option value="MA" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='MA') {echo 'selected';}} ?>>Maranhão</option> <option value="MT" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='MT') {echo 'selected';}} ?>>Mato Grosso</option> <option value="MS" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='MS') {echo 'selected';}} ?>>Mato Grosso do Sul</option> <option value="MG" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='MG') {echo 'selected';}} ?>>Minas Gerais</option> <option value="PA" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='PA') {echo 'selected';}} ?>>Pará</option> <option value="PB" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='PB') {echo 'selected';}} ?>>Paraíba</option> <option value="PR" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='PR') {echo 'selected';}} ?>>Paraná</option> <option value="PE" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='PE') {echo 'selected';}} ?>>Pernambuco</option> <option value="PI" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='PI') {echo 'selected';}} ?>>Piauí</option> <option value="RJ" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='RJ') {echo 'selected';}} ?>>Rio de Janeiro</option> <option value="RN" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='RN') {echo 'selected';}} ?>>Rio Grande do Norte</option> <option value="RS" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='RS') {echo 'selected';}} ?>>Rio Grande do Sul</option> <option value="RO" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='RO') {echo 'selected';}} ?>>Rondônia</option> <option value="RR" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='RR') {echo 'selected';}} ?>>Roraima</option> <option value="SC" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='SC') {echo 'selected';}} ?>>Santa Catarina</option> <option value="SP" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='SP') {echo 'selected';}} ?>>São Paulo</option> <option value="SE" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='SE') {echo 'selected';}} ?>>Sergipe</option> <option value="TO" <?php if(isset($_POST['seller_state'])) {if($_POST['seller_state']=='TO') {echo 'selected';}} ?>>Tocantins</option> </select> </div> <div class="form-group"> <label for="">Cidade*</label> <select id="seller_city" name="seller_city" class="form-control" > <option value=null selected>Selecione a Cidade</option> </select> </div> <div class="form-group"> <label for="">Senha*</label> <input type="password" class="form-control" name="seller_password" placeholder="Senha"> </div> <div class="form-group"> <label for="">Repita a Senha*</label> <input type="password" class="form-control" name="seller_re_password" placeholder="Repita a Senha"> </div> <?php if($recaptcha_status == 'On'): ?> <div class="form-group"> <div class="g-recaptcha" data-sitekey="<?php echo $recaptcha_site_key; ?>"></div> </div> <?php endif; ?> <button type="submit" class="btn btn-primary" name="form1">Cadastre-se</button> </div> </form> </div> </div> <div class="login-here"> <h3><i class="fa fa-user-circle-o"></i> Já é cadastrado? <a href="login.php">Efetue o Login aqui!</a></h3> </div> </div> </div> </div> <?php require_once('footer.php'); ?> pessoal agradeço pela ajuda
  24. Desde que o Copilot surgiu é que eu tento pintar a borda do <input> com Tailwind, e eu não consegui. Para pintar a borda, a solução é "border border-blue-700", o problema é na hora do <input> receber o foco, ele fica preto e grosso, e eu queria azul e grosso. O Copilot sempre repetiu a mesma solução que não resolvia "focus:border-2 focus:border-blue-700 focus:outline-none". Decidi abandonar o Copilot, e usar o velho método da tentativa e erro: <input class="border border-blue-700 focus:outline-blue-700"> O Copilot comentou que o meu código está incorreto, mas ele funciona! Eu estou usando <script src="https://cdn.tailwindcss.com"></script> ao invés do output.css no código que define a página de layout de todo projeto. O DevTools do Chrome reclama que eu não posso usar o cdn na produção, mas é o único jeito que eu encontrei para fazer o Tailwind funcionar no PHP.
  25. A grande maioria dos celulares não têm teclado físico e nem mouse, assim eu perguntei ao Copilot quantos eventos sobram para o programador trabalhar com o celular, e ele respondeu: [Eventos de toque] touchstart, touchmove, touchend e touchcancel. Há outros tipos de eventos, eu comecei a explorar o touchmove: <div class="w-[70px] text-right" title='<?=$grupo->pessoa?>' ontouchmove="alert('o cliente é o <?=$grupo->pessoa?>')" > <?=$grupo->codp?> </div>
  26. ***.826.594-** WALACE MORAIS LIMA
  27. Não sei exatamente como o Laravel faz a rotina do login, mas hoje eu mudei a rotina no PHP de tal forma que conduz o usuário para as opções ao invés de fazer login novamente: <?php class Login { // listagem parcial function login() { if(isset($_SESSION['id']) && isset($_SESSION['nome'])) { return view('menuView'); } $mensagem=""; $email=""; return view('loginView',['mensagem'=>$mensagem,'email'=>$email]); } }
  28. <div class="text-green-700">Texto verde</a> tentei usar ./tailwindcss.exe -i input.css -o output.css --content "./*.php", mas não consegui o resultado desejado. Voltei a usar <script src="https://cdn.tailwindcss.com"></script> no <head> do arquivo que serve como layout para todas as páginas dependentes. O DevTools do Google Chrome reclama que não pode usar o CDN na produção, mas pelo menos ele funciona.
  29. Olá, Bom dia! Como faça para fazer o famoso bypass e com anti ban e detectação que está sendo usado um emulador ao invés de celular
  1. Mais Resultados


  • Estatísticas dos Fóruns

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