Ir para conteúdo

POWERED BY:

Williams Duarte

Members
  • Total de itens

    3967
  • Registro em

  • Última visita

  • Dias vencidos

    47

Tudo que Williams Duarte postou

  1. Williams Duarte

    Venda de carros

    Aconselho fazer umas aulinhas básica da linguagem! Curso completo e Gratuito. https://www.youtube.com/watch?v=XwpsxPmQN2E&list=PLwXQLZ3FdTVEITn849NlfI9BGY-hk1wkq
  2. Williams Duarte

    Relacionamento 1:N replica os dados

    Utilize a cláusula Group By https://www.devmedia.com.br/desvendando-a-clausula-group-by-artigo-sql-magazine-47/8082
  3. Williams Duarte

    PHP - Mostrar resultado na sequencia.

    Ao invés de usar tabelas para tal, use gride e terá um resultado melhor e semântico. https://www.origamid.com/projetos/css-grid-layout-guia-completo/
  4. Williams Duarte

    Dúvida MVC para fins didáticos [Respondida]

    Sim! As duas formas são corretas, você declara no construct, se quiser usar em mais de um lugar na classe! Não traballho mais com Cake, mas sim Laravel, mas o Cake nas primeiras versões usava da maneira como descreveu. Não sei como ele esta hoje, se mudou a forma de carregar as models.
  5. Williams Duarte

    Pq usa-se bindValue ao invés de usar a variável direto na instrução sql

    Saiba mais aqui Desta forma use $pdo->query("..."), mas entenda sobre SQL Injection Há outras formas e um pouco menos verbosa, utilizando o prepared statements, ao invés de query. Passe o array no método execute() da PDO. $sql = "INSERT INTO usuarios (nome, email, telefone, senha) VALUES (?,?,?,?)"; $stmt= $pdo->prepare($sql); $stmt->execute([$nome, $telefone, $email, $senha]); Ou nomeados Prefira sempre o uso de espaços nomeados "placeholders", igual ao exemplo abaixo: $sql = "INSERT INTO usuarios (nome, email, telefone, senha) VALUES (:n, :t, :e, :s)"; $stmt= $pdo->prepare($sql); $stmt->execute([":n" => $nome, ":t" => $telefone, ":e" => $email, ":s" => $senha]); Quando evoluir na linguagem php, verás que a ultima a opção é a melhor para se trabalhar com objetos.
  6. Williams Duarte

    Apagando foto do registro e da pasta

    Como assim nao aparece nada? Faça um debug do código <> https://www.php.net/manual/pt_BR/function.error-reporting.php Abra seu codigo, e cole o código abaixo, ao abrir a tag php, veja que colei parte de seu código para saber onde deve dar um CTRL+V. Se mostrar algum erro, faça o mesmo, copia e cole aqui. <?php // Turn off all error reporting error_reporting(0); // Report simple running errors error_reporting(E_ERROR | E_WARNING | E_PARSE); // Reporting E_NOTICE can be good too (to report uninitialized // variables or catch variable name misspellings ...) error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); // Report all errors except E_NOTICE // This is the default value set in php.ini error_reporting(E_ALL ^ E_NOTICE); // Report all PHP errors error_reporting(E_ALL); // Same as error_reporting(E_ALL); ini_set('error_reporting', E_ALL); //Aqui começa seu codigo, cole a parte de cima, a que esta no manual // Conexão com o banco de dados include "conexao.php"; // pegar a id do cliente na url (se existir) $id_cliente = isset($_GET['id']) ? $_GET['id'] : null; $fotoNova = null;
  7. Williams Duarte

    Apagando foto do registro e da pasta

    <?php // Conexão com o banco de dados include "conexao.php"; // pegar a id do cliente na url (se existir) $id_cliente = isset($_GET['id']) ? $_GET['id'] : null; $fotoNova = null; // se algo for postado, e existir a id do cliente if (sizeof($_POST) && $id_cliente) { $foto = $_FILES['foto']; // Se a foto estiver sido selecionada if (!empty($foto['name'])) { // Largura máxima em pixels $largura = 700; // Altura máxima em pixels $altura = 1000; // Tamanho máximo do arquivo em bytes $tamanho = 1000; // Verifica se o arquivo é uma imagem if (preg_match("/^image\/(pjpeg|jpeg|png|gif|bmp)$/", $foto['type'])) { $error[1] = "Isso não é uma imagem."; } // Pega as dimensões da imagem $dimensoes = getimagesize($foto['tmp_name']); // Verifica se a largura da imagem é maior que a largura permitida if ($dimensoes[0] > $largura) { $error[2] = "A largura da imagem não deve ultrapassar " . $largura . " pixels"; } // Verifica se a altura da imagem é maior que a altura permitida if ($dimensoes[1] > $altura) { $error[3] = "Altura da imagem não deve ultrapassar " . $altura . " pixels"; } { // Pega extensão da imagem preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $foto['name'], $ext); // Gera um nome único para a imagem $nome_imagem = md5(uniqid(time())) . "." . $ext[1]; // Caminho de onde ficará a imagem $caminho_imagem = "fotos/" . $nome_imagem; // Faz o upload da imagem para seu respectivo caminho move_uploaded_file($foto['tmp_name'], $caminho_imagem); $image = new Imagick(); $image->thumbnailImage($largura, $altura); $image->readImage($caminho_imagem); $image->setImageFormat($ext[1]); $image->setImageCompressionQuality(85); $image->stripImage(); $image->writeImage($caminho_imagem); } } // atualiza os dados no banco $sql = $sqli->query("update clientes set foto = '$nome_imagem' where id_cliente = $id_cliente"); // Se os dados forem inseridos com sucesso if ($sqli->error) { echo "<p>Erro ao atualizar.</p>" . $sqli->error; } else { // vai forçar o recarregamento da imagem nova $fotoNova = '?' . microtime(true); } } ?> <!doctype html> <html> <head> <meta charset='utf-8'> <title>CLIENTES</title> <link href="estilo.css" rel="stylesheet" type="text/css"> </head> <body bgcolor="#E8E8E8"> <form id="atualizar" method="post" enctype="multipart/form-data" onsubmit="return validaCampo(); return false;" > <?php // Seleciona apenas a foto do cliente id = $id_cliente $result = $sqli->query("SELECT foto FROM clientes WHERE id_cliente=$id_cliente"); if ($sqli->error) { die($sqli->error); } else { // Exibe as informações de cada usuário while ($cliente = $result->fetch_assoc()) { // Exibimos a foto if (empty($cliente['foto'])) { echo "<img src='fotos/sem_foto.jpg' width='135' height='180'>"; } else { echo "<img src='fotos/" . $cliente['foto'] . "$fotoNova' alt='Foto de exibição' width='145' height='180'><br>"; } // Exibimos o nome e email..continua o resto do codigo aqui } } ?> <input type="file" name="foto" accept="image/*"><br><br> <input type="hidden" name="enviar" value="1"> <input type="submit" name="atualizar" value="Enviar" /> </form> </body> </html>
  8. Williams Duarte

    Gravando data no mysql

    Se a data vem neste formato brasileiro 00/00/0000, faz um reverse e grava no BD em formato americano 0000-00-00 $created = isset($_POST['created']) ? implode("-",array_reverse(explode("/", $_POST['created']))) : null ;
  9. Williams Duarte

    Fazendo Upload de vídeo

    Hoje em dia não é mais viável fazer upload de videos para servidor próprio, pelo fato de que exige alocação de espaço, memória e tráfego. Há não ser que você esteja montando um servidor de streaming. Senão for um servidor de streaming, melhor utilizar o plataformas como youtube e vimeo para upar o videos, caso "não queira" que apareça para usuários das plaformas youtube/vimeo, coloque os videos como não listados, e incorpore os videos em seu site. https://support.google.com/youtube/answer/171780?hl=pt-BR Se mesmo assim, deseja enviar, segue abaixo os formatos. https://en.wikipedia.org/wiki/Video_file_format Ao detectar qual é o formato do arquivo, faça as operações que não seja de foto, mas sim de video. Basicamente, if e else, separe a logica de cada coisa, não ha porque adaptar
  10. Williams Duarte

    Retornar dados de um campo texto do banco de dados

    Para decodificar html_entity_decode
  11. Williams Duarte

    Passar objeto para JSON

    O valor atual do elemento em $callBack['nome'], esta sendo substistuido a cada interação do foreach. E sempre vai adicionar o último item. Você pode fazer isto, sem utilizar o foreach: $callBack['items'] = $items; Caso queira remover um item do array, antes de adicionar na variavel $callBack, use unset Ou array_map, para mapear só item nome $callBack["nome"] = array_map(function ($item) { return $item['nome']; }, $itens);
  12. Williams Duarte

    Salvar dados de uma tabela html no banco de dados mysql

    Dois exemplos em UM: $( "form" ).submit(function( event ) { console.log( $( this ).serializeArray() ); event.preventDefault(); var ativo = $("input[name='ativo[]']") .map(function(){ return $(this).val(); }).get(); console.log(ativo); }); https://api.jquery.com/serializeArray/ https://api.jquery.com/jQuery.map/ Para enviar para o php, use ajax, só montar o payload, caso queira validar os dados, no lado cliente, senão, envie os dados serializados, que estão em $( this ).serializeArray(). Exemplo da documentação, substitua o data pelo seu payload. $.ajax({ method: "POST", url: "some.php", data: { name: "John", location: "Boston" } }) .done(function( msg ) { alert( "Data Saved: " + msg ); }); https://api.jquery.com/jquery.ajax/
  13. Williams Duarte

    Dificuldade em adaptar regex para javascript - matches não batem

    Em Js Troque as flags (?i) por (.*) E set i "insensitive" na option da Regex, ficando /mgi /(?:(.*)(?:https:|http:)?\/\/)?(?:(.*)(?:www\.youtube\.com\/(?:embed\/|watch\?v=)|youtu\.be\/|youtube\.googleapis\.com\/v\/)(?<YoutubeID>[a-z0-9-_]{11,12})|(?:vimeo\.com\/|player\.vimeo\.com\/video\/)(?<VimeoID>[0-9]+))/mgi; https://regex101.com/r/npUFe1/1
  14. Williams Duarte

    Salvar dados de uma tabela html no banco de dados mysql

    Passe os dados dos forms por Array, seja eles selects, inputs etc, desta forma, ou você manda a request diretamente para o php ou para o proprio jquery efetuar a requisição por ajax. <select name="ativo[]">...</select>
  15. Williams Duarte

    URGENTE !!! API do Facebook que puxe os grupos do perfil - Alguem sabe fazer ?

    Segue! Nestes sites você vai encontrar o que precisa, de forma Urgente!
  16. Williams Duarte

    Opinião sobre site

    Hoje o maior consumo de conteúdos, seja para iniciantes ou intermediarios, se vem atráves de videos aulas. Se criar videos para youtube, e indexando ao seu conteudo, pode vir aumentar suas visitas e de cara ainda ganhar monetização dos vídeos. Leitura de textos, você concorre até mesmo com as documentações.
  17. Williams Duarte

    fopen nao cria arquivo em C:

    Já passei o exemplo acima! Isto já corrige para servidores distintos e de forma automática. Seja linux ou Windows.
  18. Williams Duarte

    fopen nao cria arquivo em C:

    De devidas permissoẽs a pasta. https://www.php.net/manual/pt_BR/function.chmod.php chmod ("/arquivo/diretorio", 755); Correto é os arquivos, ficar um nivel acima da public, desta forma você consegue criar uma rotina de backups, que faça até mesmo de seu sistema, se colocar em diretorios muitos especificos, começa a ter problemas.
  19. Williams Duarte

    Salvar dados de uma tabela html no banco de dados mysql

    Depende! É difícil dizer qual seria a maneira mais simples com essas informações, Eu provavelmente pegaria o novo evento de linha, obtendo os dados e fazendo uma solicitação POST com ajax em uma API toda vez que uma nova linha é adicionada. Tente adicionar alguns trechos de códigos, quem sabe a comunidade, ao invés de tentar adivinhar oque está fazendo, mostre uma solução melhor, baseado no que você já fez. Porém, particularmente faria isto com vue.js, ja que é reativo.
  20. Williams Duarte

    fopen nao cria arquivo em C:

    Utilize dirname com a constante mágica __DIR__ dirname ( string $path [, int $levels = 1 ] ) : string Primeiro parametro, é o diretorio, segundo é o nivel que deseja subir. De um print no condigo e vá ajustando a sua necessidade. Depois declare em uma variavel e use na função. echo dirname(__DIR__, 4);
  21. Williams Duarte

    Apagando foto do registro e da pasta

    Aconselho a usar Imagick, bem mais simples. Exemplo para criar as thumbs <?php $image = new Imagick(); $image->thumbnailImage(200, 300); $image->readImage('image.jpg'); $image->setImageFormat('jpeg'); $image->setImageCompressionQuality(85); $image->stripImage(); $image->writeImage('nova_imagem.jpg'); ?> So mova a imagem antes para o servidor $tmp_name = $_FILES["arquivo"]["tmp_name"]; $name = $_FILES["arquivo"]["name"]; move_uploaded_file($tmp_name, "fotos/$name"); Valide o mime type da imagem "Tem inumeros exemplos na net", e senão tiver erros, faça o upload. Segue uma lógica. Obs.: Não copie e cole, entenda a lógica e adapte a sua necessidade. $directory = "fotos"; if ($_FILES["pictures"]["error"] == UPLOAD_ERR_OK) { $tmp_name = $_FILES["arquivo"]["tmp_name"]; $name = $_FILES["arquivo"]["name"]; move_uploaded_file($tmp_name, "$directory/$name"); } $image = new Imagick(); $image->thumbnailImage(200, 300); $image->readImage("$directory/$name"); $image->setImageFormat('jpeg'); $image->setImageCompressionQuality(85); $image->stripImage(); $thumbnail = "thumb_".$name; $image->writeImage("$directory/$thumbnail");
  22. Williams Duarte

    Apagando foto do registro e da pasta

    Disponha! Que bom que deu certo!
  23. Williams Duarte

    calcular distancia googleMaps

    Use querySelector document.querySelector("#distancia").value = calcDistance(p1, p2); <input type="text" id="distancia"> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=geometry"></script> <script> var p1 = new google.maps.LatLng(-20.783562, -51.747614); var p2 = new google.maps.LatLng(-20.775710, -51.685601); //calculates distance between two points in km's function calcDistance(p1, p2) { return (google.maps.geometry.spherical.computeDistanceBetween(p1, p2) / 1000).toFixed(2); } document.querySelector("#distancia").value = calcDistance(p1, p2); </script>
  24. Williams Duarte

    Apagando foto do registro e da pasta

    <?php $result = $sqli->query("SELECT foto FROM clientes WHERE id_clientes =". intval($id_clientes)); $obj = $result->fetch_object(); $path = 'fotos/'. $obj->foto; // atualiza os dados no banco $sql = $sqli->query("UPDATE clientes SET foto = '{$nome_imagem}' WHERE id_cliente =". intval($id_clientes)); // Se os dados forem inseridos com sucesso if ($sqli->error) { echo "<p>Erro ao atualizar.</p>" . $sqli->error; } else { if (file_exists($path)) { unlink($path); } // vai forçar o recarregamento da imagem nova $fotoNova = '?' . microtime(true); } A função die() interrompe o script para ver se esta trazendo o nome da foto. Mas cuidado com abrir e fechar das chaves { } e da tag <?php ?>, faça corretamente ou gerara erros.
  25. Williams Duarte

    Apagando foto do registro e da pasta

    Esqueci do FROM, corrigido! $result = $sqli->query("SELECT foto FROM clientes WHERE id_cliente =". intval($id_cliente)); $obj = $result->fetch_object(); die($obj->foto);
×

Informação importante

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