-
Total de itens
3967 -
Registro em
-
Última visita
-
Dias vencidos
47
Tudo que Williams Duarte postou
-
Aconselho fazer umas aulinhas básica da linguagem! Curso completo e Gratuito. https://www.youtube.com/watch?v=XwpsxPmQN2E&list=PLwXQLZ3FdTVEITn849NlfI9BGY-hk1wkq
-
Relacionamento 1:N replica os dados
Williams Duarte respondeu ao tópico de Rebeca Julia Bronzatti em PHP
Utilize a cláusula Group By https://www.devmedia.com.br/desvendando-a-clausula-group-by-artigo-sql-magazine-47/8082 -
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/
-
Dúvida MVC para fins didáticos [Respondida]
Williams Duarte respondeu ao tópico de sergiosfpereira em PHP
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. -
Pq usa-se bindValue ao invés de usar a variável direto na instrução sql
Williams Duarte respondeu ao tópico de junior3d em PHP
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. -
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;
-
<?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>
-
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 ;
-
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
-
Retornar dados de um campo texto do banco de dados
Williams Duarte respondeu ao tópico de Camilavip em PHP
Para decodificar html_entity_decode -
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);
- 2 respostas
-
Salvar dados de uma tabela html no banco de dados mysql
Williams Duarte respondeu ao tópico de emmanuelsiqueira30 em PHP
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/ -
Dificuldade em adaptar regex para javascript - matches não batem
Williams Duarte respondeu ao tópico de Maykel-ctba em Javascript
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- 1 resposta
-
- javascript
- regex
-
(e mais 1 )
Tags:
-
Salvar dados de uma tabela html no banco de dados mysql
Williams Duarte respondeu ao tópico de emmanuelsiqueira30 em PHP
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> -
URGENTE !!! API do Facebook que puxe os grupos do perfil - Alguem sabe fazer ?
Williams Duarte respondeu ao tópico de MatheusFenix em PHP
Segue! Nestes sites você vai encontrar o que precisa, de forma Urgente! -
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.
-
Já passei o exemplo acima! Isto já corrige para servidores distintos e de forma automática. Seja linux ou Windows.
-
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.
-
Salvar dados de uma tabela html no banco de dados mysql
Williams Duarte respondeu ao tópico de emmanuelsiqueira30 em PHP
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. -
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);
-
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");
-
Disponha! Que bom que deu certo!
-
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>
-
<?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.
-
Esqueci do FROM, corrigido! $result = $sqli->query("SELECT foto FROM clientes WHERE id_cliente =". intval($id_cliente)); $obj = $result->fetch_object(); die($obj->foto);