Ir para conteúdo

DinhoPHP

Members
  • Total de itens

    244
  • Registro em

  • Última visita

Posts postados por DinhoPHP


  1. 4 horas atrás, Camilavip disse:

    Oi, eu tirei umas dúvidas aqui mesmo no fórum e tinha conseguido uma solução, mas agora me deparei com outro.

    Tenho essa função que chama a foto.

    
    <?php 
    
    if (!empty($row['foto'])) { 
        echo "<img src='fotos/".$row['foto']."' />";
    }
    
    else{
        echo "<img src='fotos/semfoto.jpg' />";
    }
    
    ?>

    Mas eu tinha uma claase para deixar as bordas arredondadas

    img class="image_rounded"

    Mas como a utilizo nessa função?

     

    // UTILIZANDO CLASSE
    echo "<img src='fotos/".$row['foto']."' class='nome-da-classe' />";
    
    // UTILIZANDO STYLE
    echo "<img src='fotos/".$row['foto']."' style='border: 2px solid #000000; border-radius: 3px;'/>"
    
    // UTILIZANDO BOOTSTRAP
    echo "<img src='fotos/".$row['foto']."' class='rounded' />";
    // NESTE CASO, PRECISARÁ CHAMAR AS DEPENDÊNCIAS NO MÍNIMO VIA CDN
    // https://getbootstrap.com.br/docs/4.1/getting-started/introduction/

     


  2. 4 horas atrás, Camilavip disse:

    Eu já dei um jeito usando uma função jquery para inserir no input. Na verdade eu não queria retornar e sim inserir no banco

    Entendido. Show! O importante é que conseguiu. Mas sempre gravei mesmo como citado pelo Williams, e acho até melhor, já que é padrão do banco.


  3. <?php
    /*
    	VOCÊ PRECISARÁ FAZER O DOWNLOAD DO PHPMAILER E INCLUÍ-LA NO NESTE ARQUIVO.
        SUGIRO TAMBÉM, DAR UMA ESTUDADA NA DOCUMENTAÇÃO DO MESMO.
        TUDO E ONDE BAIXAR EM: https://github.com/PHPMailer/PHPMailer
    */
    
    // CAPTURANDO DADOS DO FORMULÁRIO ADD OS ISSET DO POST
       $nome      = trim(ucwords(preg_replace('/\s\s+/', ' ',($_POST['nome-curriculo']))));
       $eemail     = trim(strtolower(preg_replace('/\s\s+/', ' ',($_POST['email-curriculo']))));
       $telefone  = trim(preg_replace('/\s\s+/', ' ',($_POST['telefone-curriculo'])));
       $cidade    = trim(preg_replace('/\s\s+/', ' ',($_POST['cidade-curriculo'])));
       $assunto   = trim(preg_replace('/\s\s+/', ' ',($_POST['assunto-curriculo'])));
       $mensagem  = trim(preg_replace('/\s\s+/', ' ',($_POST['mensagem-curriculo'])));
       $ip        = $_SERVER['REMOTE_ADDR'];
       $navegador = $_SERVER['HTTP_USER_AGENT'];
    
       $files = $_FILES["file"];
       $file = $files;
    
       try{
       // Inicia a classe PHPMailer
       $mail = new PHPMailer(true);
       
          // Define os dados do servidor e tipo de conexão
          // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          //$mail->SMTPDebug = SMTP::DEBUG_SERVER; // Enable verbose debug output
          $mail->CharSet = "UTF-8";
          $mail->setLanguage('br');
          $mail->Host = "mail.host.com.br"; // Endereço do servidor SMTP
          $mail->Username = 'emaildahospedagem@host.com.br'; // Usuário do servidor SMTP
          $mail->Password = 'senha'; // Senha do servidor SMTP
          $mail->Port = 587; // SMTP 465 - IMAP 993 - 587
          $mail->isSMTP();
          $mail->SMTPAuth = true; // Usa autenticação SMTP? (opcional)
          $mail->SMTPSecure = 'tls';
          //$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS`
          $mail->Priority = 1; 
          // Define o remetente
          // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          $mail->From = ("email@email.com.br"); // E-mail do usuário
          $mail->FromName = $nome; // Seu nome
          // Define os destinatário(s)
          // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          $mail->AddAddress($eemail);
          //$mail->AddCC('ciclano@site.net', 'Ciclano'); // Copia
          //$mail->AddBCC('fulano@dominio.com.br', 'Fulano da Silva'); // Cópia Oculta
          // Define os dados técnicos da Mensagem
          // =-=-=-=-=-=-=-=-=-=-=1-=-=-=-=-=-=-=-=-=
          $mail->IsHTML(); // Define que o e-mail será enviado como HTML
          //  $mail->CharSet = 'iso-8859-1'; // Charset da mensagem (opcional)
          // Define a mensagem (Texto e Assunto)
          // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          $mail->Subject = $assunto; // Assunto da mensagem
          //Read an HTML message body from an external file, convert referenced images to embedded,
          //convert HTML into a basic plain-text alternative body
          // $mail->msgHTML(FILE_USE_require_once_ATH('contents.html', 1));
          // CORPO DO EMAIL
          // FORMATO HTML
          $mail->Body = "<h4><p>Nome: {$nome}.<br><br>Email: {$eemail}<br><br>Telefone: {$telefone}.<br><br>Cidade: {$cidade}.<br><br>Assunto: {$assunto}.<br><br>Mensagem: {$mensagem}</p><p><h6><br>IP do remetente: {$ip}<br>Navegador do remetente: {$navegador}</h6></p></h4>";
    
          // FORMATO SEM HTML
          $mail->AltBody = "Nome: {$nome}" . "\n" . "\n" . "Email: {$eemail}" . "\n" . "Telefone: {$telefone}" . "Cidade: {$cidade}" . "\n" . "Mensagem: {$mensagem}" . "\n" . "IP do remetente: {$ip}" . "\n" . "Navegador do remetente: {$navegador}";
          // Define os anexos (opcional)
          // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          $mail->AddAttachment($file['tmp_name'], $file['name'], 'base64');  // Insere um anexo
          //print_r($_FILES);echo"<br>";print_r($files);
          
          // Envia o e-mail
          $mail->Send();
          // Limpa os destinatários e os anexos
          $mail->ClearAllRecipients();
          $mail->ClearAttachments();
          // FIM DO ENVIO DE EMAIL
          
       }catch (Exception $e)
          echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
       }
    ?>

    https://github.com/PHPMailer/PHPMailer

     

    Postei um código pq tive grandes e misteriosos problemas para anexar, mas consegui desta maneira. Tirei muitas adaptações que tinha, mas com isso você já consegue enviar com anexo.


  4. 6 horas atrás, Camilavip disse:

    Estou tentando gravar uma data de cadastro no mysql mas não está gravando.

    A tabela do banco: `created` datetime NOT NULL,

     

    E no php:

    
    
    	// Recupera os dados dos campos
    	$nome = $_POST['nome'];
    	$celular = $_POST['celular'];
    	$email = $_POST['email'];
    	$login = $_POST['login'];
    	$senha = sha1($_POST['senha']);
    	$id_nivel = $_POST['id_nivel'];
    	$ativo = isset($_POST['ativo']) ? $_POST['ativo'] : null;
    	$foto = $_FILES["foto"];
    	$nome_imagem = null;
    	$created = isset($_POST['created']) ? $_POST['created'] : null;
    
    // Insere os dados no banco
    $sql = $sqli->query("INSERT INTO clientes VALUES ('', '".$nome."', '".$celular."', '".$email."', '".$login."', '".$senha."', '".$id_nivel."', '".$ativo."', '".$nome_imagem."', '".$created."')");

     

    Tem um bom tempo que fiz algo assim e se lembro bem, eu gravava normal e se precisasse mostrar a data no formato BR em uma página, eu fazia isso...

     

    <?php
    $date=date_create("2013-03-15");
    echo date_format($date,"d/m/Y");
    ?>

    Mas encontrei isso em um fórum e acredito que pode te ajudar.

     

    https://pt.stackoverflow.com/questions/17679/como-inserir-date-e-datetime-em-uma-tabela-no-mysql


  5. Pessoal, tenho um código PHP que busca imagens em subpastas, porém gostaria de fazê-lo com que fosse carregado aos poucos pois são muitas fotos, tentei de ns maneiras entender o AJAX, mas não tive sucesso. Favor! Peço ajuda.

     

    loadAjax.php

    $dir = new DirectoryIterator( './images/portfolio/sem_categoria' );
    
    // array contendo os diretórios permitidos    
    $diretoriosPermitidos = array("portfolio","sem_categoria");
    foreach($dir as $file)
    {
          // verifica se $file é diferente de '.' ou '..'
          if (!$file->isDot())
          {
             // listando somente os diretórios
             if  ( $file->isDir() )
             {
                // atribui o nome do diretório a variável
                $dirName = $file->getFilename();
    
                // subdiretórios
                $caminho = $file->getPathname();
                // chamada da função de recursividade
                recursivo($caminho, $dirName);
             }
    
             // listando somente os arquivos do diretório
             if  ( $file->isFile() )
             {
                // atribui o nome do arquivo a variável
                $fileName = $file->getFilename();
                // print
                //echo "Arquivos: ".$fileName."<br>";
             }
          }
    }
    
    function recursivo( $caminho, $dirName ){
    
          global $dirName;
    
          $DI = new DirectoryIterator( $caminho );
    
          foreach ($DI as $file){
             if (!$file->isDot())
             {
                if  ( $file->isFile() )
                {
                      //
                      $fileName = $file->getFilename();
                      //
                      //echo $dirName.": ".$fileName."<br>";
                      echo "<div class='col-12 col-sm-6 col-md-4 col-lg-3 mb-2 d-flex justify-content-center' alt=''>
                <a href='{$fileName}' class='fresco' data-fresco-group='example' data-fresco-caption='ARJ SERVICE'>
                <img class='eni-img-thumb' src='images/portfolio/sem_categoria/{$dirName}/{$fileName}'>
                </a>
             </div>";
                }
             }
    
          }
    }

    Tentei adaptar o código abaixo as minhas necessidades, mas não consegui.

    <script>
            //variavel para controle de registros retornados
            var pagina = 0;
            var pesquisa = true;
            //function carrega
            function carrega(){
                $('#loading').html("<img src='img/loader.gif'/> Carregando Feeds...").fadeIn('fast');
                $.ajax({
                    type: "POST",
                    url: "loadAjax.php",
                    data: "page="+pagina,//variavel passada via post 
                    cache: false,
                    success: function(html){
                    if(html){ 
                        $('#loading').fadeOut('fast'); 
                        $("#result").append(html); 
                        //mostra resultado na div result 
                        pesquisa = true; 
                   }else{ 
                          
                        $('#loading').html("Fim da pesquisa...").fadeIn('fast'); 
                        pesquisa = false;  
                   }
                    },
                    error:function(html){
                        $('#loading').html("erro...").fadeIn('fast');
                    }
                });
            };
            //chama minha funcao ao carregar a pagina
            $(document).ready(function(){
                carrega();
            });
            //funcao de controle do scroll da pagina, na qual ela chega ao fim é acionada chamando
            //minha function carrega novamente para trazer mais dados dinamicamente
            $(window).scroll(function(){
                 
                if($(window).scrollTop() + $(window).height() >= $(document).height()){
                    pagina += 1;
                    carrega();
                };
            });
        </script>

     


  6. Agora, Williams Duarte disse:

    O problema acredito não ser no PhpMailer!

    Pois não sabemos oque este código faz, se você abstraiu as funções do PHPMailer para outra layer. Só Deus e você sabe oque fez, nem aqui e nem no SoPT entenderá. Lá no Stack ja iria ser fechada ou negativada, por nao ser clara e fora de escopo do PHPMailer.

    Pois é! Mas sem má intenção e a mesma não foi. Acredito não ter culpa se todos os meus códigos salvos anteriormente com a classe resolveram parar de funcionar. Tive que fazer outra e fui com base no vídeo do canal UPINSIDE.

     

     

    Mas sem problemas! Nunca desisto e irei consegui ;) agradeço ao Guilherme e aos que tentaram me ajudar. Se verem  a necessidade de fechar, assim o podem fazer. Vlw! E obrigado!


  7. Em 05/06/2020 at 23:11, Guilherme Luiz disse:

    Muito obrigado, Guilherme. Mas quando eu estava criando este tópico, esqueci de editar partes da postagens e acabou ficando igual a do Stackoverflow (pois já havia postado lá). rsrs

     

    O problema é com ela mesmo, se passo os parâmetros manualmente ex: attach("pasta/arq.doc", "nome_para_o_arequivo")->send(); roda normal, porém, não com variável com conteúdo do campo file do html. Entendeu?


  8. Estou tentando enviar um anexo e o mesmo não chega no email, apenas quando não faço uso da função attach.

    arquivo que contém as functions responsáveis pelo envio do email.

     public function attach(string $filePath, string $fileName): Email{
             $this->data->attach[$filePath] = $fileName;
             return $this;
          }

    Arquivo que utiliza a função attach.

    No arquivo que captura os dados do formulário, já passei os parâmetros de tudo quanto é jeito.

       require __DIR__ . "/include/head.php";
       require __DIR__ . "/vendor/autoload.php";
       use Source\Support\Email;
    
       $email = new Email();
    
    
          // CAPTURANDO DADOS DO FORMULÁRIO
          $nome      = trim(ucwords(preg_replace('/\s\s+/', ' ',($_POST['nome-curriculo']))));
          $eemail     = trim(strtolower(preg_replace('/\s\s+/', ' ',($_POST['email-curriculo']))));
          $telefone  = trim(preg_replace('/\s\s+/', ' ',($_POST['telefone-curriculo'])));
          $cidade    = trim(preg_replace('/\s\s+/', ' ',($_POST['cidade-curriculo'])));
          $assunto   = trim(preg_replace('/\s\s+/', ' ',($_POST['assunto-curriculo'])));
          $mensagem  = trim(preg_replace('/\s\s+/', ' ',("<pre>".$_POST['mensagem-curriculo']."</pre>")));
          // $file_tmp = ($_FILES['file'], $_POST['name']);
          $files = $_FILES['curriculo'];
    
          $email->add($assunto,
          "<h3>Nome: {$nome}<br>{$files['name']}<br>Email: {$eemail}<br><br>Telefone: {$telefone}<br><br>Cidade: {$cidade}<br><br></br>Mensagem:<br>{$mensagem}</h3>",
          $nome,
          $eemail)->attach($files['tmp_name'], $files['name'])->send();
          var_dump($files);

    A função attach que recebe dois parâmetros, quando utilizada, não envia o anexo vindo do form HTML, já digitando os parâmetros na função, ela envia o anexo. Já li até alguns casos semelhantes aqui mesmo e nada! Só envia o anexo digitando os parâmetros manualmente. 


  9. Olá! Peguei um feela, onde o cliente possui um campo de busca de reservas do Booking. A solicitação era de um menu moderno em tecnologias de estilo, seguindo o layout já desenvolvido por ele, até aí tudo bem. O problema é como fazer com que esses dados do formulários passados via GET, sejam recebidos corretamente pela página de resultados do Booking.com

    Tentei, utilizando mesmo names e ids da busca original, porém, o resultado desejado é satisfatório apenas onde digita o que desejamos buscar.

    <script type="text/javascript">
          (function(d, sc, u) {
             var s = d.createElement(sc), p = d.getElementsByTagName(sc)[0];
             s.type = 'text/javascript';
             s.async = true;
             s.src = u + '?v=' + (+new Date());
             p.parentNode.insertBefore(s,p);
             })(document, 'script', '//aff.bstatic.com/static/affiliate_base/js/flexiproduct.js');
    </script>
    
    <body>
    <div class="container">
          <div class="row bg-primary justify-content-center my-3 text-white">
             <form id="b_frm" method="get" action="https://www.booking.com/searchresults.html" enctype="multipart/form-data" class="form-inline my-3" target="_blank">
                <div class="col-12 col-sm-12 col-md-6" data-test="true">
                   <label for="txt-search" class="justify-content-start"><i class="fas fa-search mr-1"></i>Pesquisar</label>
                   <input type="search" id="b_destination" class="form-control w-100" name="ss" id="b_destination" value="Guarujá" title="Ex.: cidade, região, bairro ou hotel específico" placeholder="Ex.: cidade, região, bairro ou hotel, casa, apartamento" role="textbox" aria-haspopup="true">
                   <input type="hidden" name="dest_id" value="-645946">
                   <input type="hidden" name="dest_type" value="city">
                </div>
                <div id="checkin_target" class="col-12 col-sm-12 col-md-3">
                   <label for="txt-date-in" class="justify-content-start">Data de entrada</label>
                   <select class="form-control w-100" name="checkin_monthday" id="b_checkin_day"></select>
                   <select class="form-control w-100" name="checkin_year_month" id="b_checkin_month"></select>
                </div>
                <div id="checkout_target" class="col-12 col-sm-12 col-md-3">
                   <label for="txt-date-out" class="justify-content-start">Data de saí­da</label>
                   <select class="form-control w-100" name="checkout_monthday" id="b_checkout_day"></select>
                   <select class="form-control w-100" name="checkin_year_month" id="b_checkout_month"></select>
                </div>
                <div class="col-12 d-inline-flex justify-content-end mt-3">
                   <label for="checkReserv">
                      <input type="checkbox" class="form-check-inline" name="checkReserv" id="checkReserve">
                      Reserve agora, pague depois
                   </label>
                </div>
                <div class="col-12 d-inline-flex justify-content-end mt-3">
                   <button type="submit" tabindex="0" class="btn btn-danger form-control" value="search">Pesquisar</button>
                </div>
    
                <input type="hidden" name="error_url" value="/?aid=1704408;">
                <input type="hidden" name="si" value="ai,co,ci,re,di">
                <input type="hidden" name="label" value="">
                <input type="hidden" name="lang" value="pt-br">
                <input type="hidden" name="aid" value="1704408">
                <input type="hidden" name="sp_plprd" value="UmFuZG9tSVYkc2RlIyh9YVXcKaaJl1Cl8VOf4QzoGuIOLLs5aG2FZ2ZavnPQr-nKVGXKwhi-SxV27wZ5e4ad8ZB_vNL0FpUBWR1nsdbY6J6ZBGBM6rnqKJd1-J9bY_Ur">
                <input type="hidden" name="utm_campaign" value="nsb">
                <input type="hidden" name="utm_medium" value="sp">
                <input type="hidden" name="utm_source" value="FP_Searchbox">
                <input type="hidden" name="utm_term" value="1704408">
    
             </form>
          </div>
       </div>
          
        <!-- Optional JavaScript -->
        <!-- jQuery first, then Popper.js, then Bootstrap JS -->
        <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
        <script src="https://s.bookcdn.com/js/translations/translation_31.26.js"></script>
        <script src="https://s.bookcdn.com/build/booked/booked_bundle.74f2565a43a50d618c66d31c0adba095.js"></script>
        <!-- <ins class="bookingaff" data-aid="1704408" data-target_aid="1704408" data-prod="nsb" data-width="100%" data-height="auto" data-lang="xb" data-currency="BRL" data-dest_id="-645946" data-dest_type="city">
        Anything inside will go away once widget is loaded.
            <a href="//www.booking.com?aid=1704408">Booking.com</a>
       </ins>-->
      </body>

     

     

     

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.