-
Posts
1.140 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que Luís Roberto C. da Silva postou
-
PHP Redimensionar e excluir foto
Luís Roberto C. da Silva respondeu ao tópico de Camilavip em Web e banco de dados
Está enganada, li seu código sim. Sugeri converter para base64 pois evita perdas das imagens se deletadas, além de ser mais rápido para carregá-las. Claro que pra isso teria que fazer algumas alterações no código e no BD. adicionado 11 minutos depois Com relação ao redimensionamento, você pode inserir bem antes de salvar na pasta: if($dimensoes[1] > $altura){ $error[3] = "Altura da imagem não deve ultrapassar " . $altura . " pixels"; } else{ //acho que faltou esse else aqui. preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $foto['name'], $ext); $nome_imagem = md5(uniqid(time())) . "." . $ext[1]; $caminho_imagem = "fotos/" . $nome_imagem; $largura = 200; $altura = 300; list($largura_original, $altura_original) = getimagesize($foto['tmp_name']); $image_p = imagecreatetruecolor($largura, $altura); $image = imagecreatefromjpeg($foto['tmp_name']); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $largura, $altura, $largura_original, $altura_original); imagejpeg($image_p, 'nova.jpg', 75); move_uploaded_file($image_p, $caminho_imagem); } -
PHP Como abrir link de um site .php?
Luís Roberto C. da Silva respondeu ao tópico de Slow Lion em Web e banco de dados
HTML não pode abre arquivos .php, essas páginas só podem ser lidas dentro do servidor. Quando você redireciona é como se estivesse abrindo o arquivo .php em com seu código html/javascript. Em outras palavras, não tem como. -
PHP Redimensionar e excluir foto
Luís Roberto C. da Silva respondeu ao tópico de Camilavip em Web e banco de dados
Para redimensionar você tem que usar a biblioteca GD: <?php $filename = 'original.jpg'; $largura = 200; $altura = 300; list($largura_original, $altura_original) = getimagesize($filename); $resolucao_original = $largura_original/$altura_original; $image_p = imagecreatetruecolor($largura, $altura); $image = imagecreatefromjpeg($filename); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $largura, $altura, $largura_original, $altura_original); header('Content-Type: image/jpeg'); imagejpeg($image_p, 'nova.jpg', 75); ?> adicionado 1 minuto depois Geralmente já vem com o PHP, se estiver ativa é só procurar GD no php.ini e descomentar. adicionado 4 minutos depois Ou com a função do GD: <?php imagecopyresampled(resource $img_destino, resource $img_origem, int $x_destino , int $y_destino, int $x_origem, int $y_origem, int $largura_destino, int $altura_destino, int $largura_origem, int $altura_origem) ?> adicionado 6 minutos depois Pra apagar o arquivo original use o unlink: https://www.php.net/manual/pt_BR/function.unlink.php adicionado 20 minutos depois Uma alternativa ao salvar a imagem em pastas é converter para base64 e salvar no banco de dados: <?php $img = 'img.jpg'; $img_base64 = file_get_contents($img); $imgData = base64_encode($img_base64); ?> -
C Erro ao declarar ponteiro
Luís Roberto C. da Silva respondeu ao tópico de Rodrigo Hepp em C/C#/C++
Você precisa primeiro instanciar uma variável tipo Livros. Não pode apontar pra algo que não ocupa espaço. Tipo: Livros livro1; float *plpreco = livro1.preco; -
C++ Desenvolva um programa em C
Luís Roberto C. da Silva respondeu ao tópico de Lucasalb11 em C/C#/C++
Esse seu código está todo errado, tem que refazer e faltam as funções. Seja específico na dúvida. Outra coisa use o botão <> para postar códigos. -
Ponteiro do mouse piscando fazendo uso de 100% do CPU
Luís Roberto C. da Silva respondeu ao tópico de Jadson Albuquerque em Processadores
Tire um print do Gerenciador de tarefas pra ver o que está consumindo a CPU. -
Mudanças no Clube do Hardware – junho/2020
Luís Roberto C. da Silva respondeu ao tópico de Gabriel Torres em Comentários de artigos
Realmente uma pena, mas cada um sabe onde o sapata aperta. Gabriel tenho dois livros seus, são ótimos. Que tenha sorte em sua mudança e, com fé em Deus, tudo vai dar certo. -
Qual distribuição Linux escolher para jogos?
Luís Roberto C. da Silva respondeu ao tópico de Micael de Mello em Linux
@KairanD Nvidia nunca deram suporte ao Linux. apenas a AMD que é parceira, por isso têm compatibilidade total. Já a Nvidia depende de desenvolvedores de drivers independentes. -
Qual distribuição Linux escolher para jogos?
Luís Roberto C. da Silva respondeu ao tópico de Micael de Mello em Linux
Qual interface é o Mint do trabalho? Ele tem o Mate, Xfce, Gnome e Cinnamon. O Cinnamon é mais interessante. Mas se quer algo estável tem que ser Debian, o o Mint Debian Edition. O Ubuntu é cheio de bugs. -
HDMI sem som (nada funcionou) R9 270x 2gb
Luís Roberto C. da Silva respondeu ao tópico de Hankeyes em Placas de vídeo
O que aparece em Controladores de sim, vídeo e jogos? adicionado 0 minutos depois Faça um print pra facilitar. adicionado 2 minutos depois Veja o meu, não aparece como HDMI, mas sim como dispositivo de alta definição de áudio: adicionado 5 minutos depois Veja também entrada e saída de áudio: -
HDMI sem som (nada funcionou) R9 270x 2gb
Luís Roberto C. da Silva respondeu ao tópico de Hankeyes em Placas de vídeo
Verifique no gerenciado de dispositivos se os drivers estão completamente instalados. -
Adaptador Ethernet não inicia no Windows (código 10)
Luís Roberto C. da Silva respondeu ao tópico de Luís Roberto C. da Silva em Redes e Internet
Como já refiz a formatação inúmeras vezes esse procedimento ocorreu em todas elas, inclusive no processo de atualização do sistema. Infelizmente não funciona. -
Saudações pessoal. O problema começou depois que precisei gravar um novo BIOS, pois o antigo deu problema e o PC não ligava mais. O adaptador de rede via cabo passou a dar problema e não inicia. Já formatei a máquina com todas as versões do Windows e deixei atualizando; já regravei todas as versões do bios disponíveis; já atualizei o driver de rede com várias versões, antigas e novas, do fabricante de de terceiros, o resultado é sempre o mesmo. Porém comprovei que o adaptador não está com defeito e nem é defeito de hardware, pois no Linux a placa funciona perfeitamente, já testei Ubuntu, Solus e Debian e em todos a internete funciona, mas também preciso do Windows devido a alguns programas. Alguém sabe como resolver esse mistério? Adaptador que não inicia: Código do problema: ID do Hardware: adicionado 22 minutos depois Mais algumas informações:
-
Antes de instalar você pode escolher testar o sistema, ele é live, funciona sem precisar instalar. Mas se achar o Ubuntu pesado pro seu note, recomendo do Lubuntu, que tem as mesmas características do Ununtu, mas com uma interface mais leve: http://cdimage.ubuntu.com/lubuntu/releases/20.04/release/lubuntu-20.04-desktop-amd64.iso
-
CSS alinhar objetos de uma li
Luís Roberto C. da Silva respondeu ao tópico de WilliamNascimento em Web e banco de dados
Coloque o img dentro de uma <li><\li> -
CSS alinhar objetos de uma li
Luís Roberto C. da Silva respondeu ao tópico de WilliamNascimento em Web e banco de dados
Adicione esse código ao css: #menu img{ vertical-align: middle; } -
HTML Como disponibilizar meu sistema para clientes
Luís Roberto C. da Silva respondeu ao tópico de JonathanCruz em Web e banco de dados
Na verdade com esse sistema não dá pra compartilhar, pois cada instância abre um servidor, seria como cada computador abrisse seu próprio servidor pra executar o aplicativo. -
HTML Como disponibilizar meu sistema para clientes
Luís Roberto C. da Silva respondeu ao tópico de JonathanCruz em Web e banco de dados
Sim, tem. Com o PHP-Desktop: https://github.com/cztomczak/phpdesktop você pode transformar suas aplicações PHP+JavaScritp+HTML em uma aplicação com executável, substituindo o conteúdo da pasta www pelo conteúdo de sua aplicação. -
Formatei o notebook e quando liguei apareceu essa linguagem estranha
Luís Roberto C. da Silva respondeu ao tópico de Thiago Pereria em Windows 10
Vírus, ou utilizou um idioma que não tem suporte. -
Fios de alimentação soltos - Balança de mão
Luís Roberto C. da Silva respondeu ao tópico de Pricila Moreira em Eletrônica
O amarelo fica no negativo da outra metade (conectando todas as pilhas em série). O preto fica onde tem BAT - E o vermelho fica onde tem BAT + -
PHP PDF dinamico com DomPDF.
Luís Roberto C. da Silva respondeu ao tópico de Patrickwilker0 em Web e banco de dados
Eu utilizava o DomPDF, mas por ser muito grande pra colocar em webserver eu optei pelo JSPDF, que só precisa de dois arquivos. Mas se quer mesmo com dom pdf: Esses comandos devem ser inseridos logo no início do código: use Dompdf\Dompdf; use Dompdf\Options; E depois que alocar todo o HTML em uma variável, faça isso: require_once "../caminho/para/autoload.inc.php"; $dompdf = new Dompdf(); $options = new Options(); $options->set('defaultFont', 'Arial'); $options->setFontHeightRatio(1); $options->setIsRemoteEnabled(true); $options->setIsHtml5ParserEnabled(true); $options->setIsPhpEnabled(true); $options->setIsRemoteEnabled(true); $dompdf->setOptions($options); $dompdf->loadHtml($html); $dompdf->setPaper('A4'); $dompdf->render(); $arquivo = utf8_decode("../cria/pasta/saida.pdf"); $pasta = utf8_decode("../cria/pasta"); if(!file_exists($pasta)){ mkdir($pasta); } $output = $dompdf->output(); file_put_contents('$arquivo, $output); adicionado 4 minutos depois Lembrando que o HTML gerado dinamicamente tem que ser alocado em uma variável php. -
PHP Validar CPF em php
Luís Roberto C. da Silva respondeu ao tópico de rodJET em Web e banco de dados
O Ministério da Fazenda disponibiliza a função apenas em JavaScript. Se quiser traduzir para PHP fique a vontade: var foco = ""; var msgstatus = ""; /************************************************* Função que permitir digitar numeros **************************************************/ function EntradaNumerico(evt) { var key_code = evt.keyCode ? evt.keyCode : evt.charCode ? evt.charCode : evt.which ? evt.which : void 0; // Habilita teclas <DEL>, <TAB>, <ENTER>, <ESC> e <BACKSPACE> if (key_code == 8 || key_code == 9 || key_code == 13 || key_code == 27 || key_code == 46) { return true; } // Habilita teclas <HOME>, <END>, mais as quatros setas de navegação (cima, baixo, direta, esquerda) else if ((key_code >= 35) && (key_code <= 40)) { return true } // Habilita números de 0 a 9 // 48 a 57 são os códigos para números else if ((key_code >= 48) && (key_code <= 57)) { return true } return false; } function Alertar(strMsg) { window.alert(strMsg) } function aviso (campo, msg) { alert(msg); campo.focus(); campo.select(); return false; } //------------------------------- function isDigit (c) { return ((c >= "0") && (c <= "9")) } //------------------------------- function isEmpty(s) { return ((s == null) || (s.length == 0)) } //Verifica se CPF é válido function TestaCPF(strCPF) { var Soma; var Resto; Soma = 0; //strCPF = RetiraCaracteresInvalidos(strCPF,11); if (strCPF == "00000000000") return false; for (i=1; i<=9; i++) Soma = Soma + parseInt(strCPF.substring(i-1, i)) * (11 - i); Resto = (Soma * 10) % 11; if ((Resto == 10) || (Resto == 11)) Resto = 0; if (Resto != parseInt(strCPF.substring(9, 10)) ) return false; Soma = 0; for (i = 1; i <= 10; i++) Soma = Soma + parseInt(strCPF.substring(i-1, i)) * (12 - i); Resto = (Soma * 10) % 11; if ((Resto == 10) || (Resto == 11)) Resto = 0; if (Resto != parseInt(strCPF.substring(10, 11) ) ) return false; return true; } // Recupera uma referência ao objeto com o id especificado // Funciona primariamente com o DOM, mas também aceita document.all function pegaObj( id ) { if ( typeof(document.getElementById) != 'undefined' ) return document.getElementById( id ); else if ( document.all ) { return document.all( id ); } } // Função chamada no evento onKeyDown para evitar que caracteres não numéricos // sejam inseridos no campo indicado. // Parâmetros: // input: referência para o objeto <input> que recebeu o evento // e: o objeto event function ajustar_numero(input, e) { var k; // e.which: explorer, e.keyCode: mozilla if (e && e.which) k = e.which; else k = e.keyCode; // No IE não essa função não consegue cancelar tabs, BS, DEL, etc, mas no mozilla sim, // por isso precisamos deixar passar as teclas de edição. // Somente aceita os caracteres 0-9, tab, enter, del e BS if ( ((k<48)||(k>57)) && k != 8 && k != 9 && k != 127 && k != 13 && !((k>34)&&(k<41)) && k != 46) { if(e.ctrlKey && (k == 118 ||k == 99)) { return true; } else { e.returnValue = false; return false; } } return true; } // Função específica do IE, que busca as informações do evento // e repassa para as rotina em si "ajustar_numero" e "pular_campo" function ajustar_numeroie() { e = window.event; input = pegaObj( e.srcElement.id ); return ajustar_numero( input, e ); } function pular_campoie() { e = window.event; input = pegaObj( e.srcElement.id ); return pular_campo( input, e ); } // Função que registra os inputs que precisam ser numéricos e que têm // um tamanho fixo que, quando alcançado, muda para o próximo campo. // Parâmetros: // id: id do <input> que deve capturar os eventos de tecla // tamanhoMaximo: o número de dígitos máximo para este campo // proximoId: id do próximo campo no formulário para o qual pularemos quando // o número máximo de dígitos for alcançado. var inputList = new Array(); function registraInput( id, tamanhoMaximo, proximoId ) { inputList[id] = new Array(); inputList[id]['tamanho'] = tamanhoMaximo; inputList[id]['proximo'] = proximoId; // No IE não funciona setar o atributo via DOM, e o evento não vem como parâmetro // portanto precisamos setar uma função diferente para ele pegaObj(id).onkeyup = pular_campoie; pegaObj(id).onkeypress = ajustar_numeroie; // O mozilla também aceita a linha anterior, mas aqui nós passamos por cima e // chamamos a função diretamente pegaObj(id).setAttribute( 'onKeyUp', 'pular_campo(this, event)'); pegaObj(id).setAttribute( 'onKeyPress', 'return ajustar_numero(this,event)'); } function validarCPF(cpf) { var form = pegaObj("theForm"); if (pegaObj("id_cpf").value == "") { alert("Por favor, preencha o cpf a ser consultado"); pegaObj("id_cpf").focus(); return; } } function RemoveMask(xElement) { var strValue = pegaObj(xElement).value; strValue = strValue.replace(".", ""); strValue = strValue.replace(".", ""); strValue = strValue.replace("-", ""); strValue = strValue.replace("/", ""); strValue = strValue.replace("/", ""); pegaObj(xElement).value = strValue; } function FG_FormatarCPF(xElement) { var strValor = pegaObj(xElement).value; var strTemp; strTemp = strValor.replace(".", ""); strTemp = strTemp.replace(".", ""); strTemp = strTemp.replace(".", ""); strTemp = strTemp.replace("-", ""); strTemp = strTemp.replace("-", ""); strValor = strTemp if (strValor.length > 9) { strValor = strValor.substr(0, 3) + '.' + strValor.substr(3, 3) + '.' + strValor.substr(6, 3) + '-' + strValor.substr(9, 2); } else if (strValor.length > 6) { strValor = strValor.substr(0, 3) + '.' + strValor.substr(3, 3) + '.' + strValor.substr(6, 3); } else if (strValor.length > 3) { strValor = strValor.substr(0, 3) + '.' + strValor.substr(3, 3); } pegaObj(xElement).value = strValor; } function FG_FormatarData(xElement) { var strValor = pegaObj(xElement).value; var strTemp strTemp = strValor.replace("/", ""); strTemp = strTemp.replace("/", ""); strValor = strTemp; if (isNaN(parseInt(strValor.substr(strValor.length - 1, 1)))) { strValor = strValor.substr(0, strValor.length - 1) } if (strValor.length > 5) { strValor = strValor.substr(0, 2) + '/' + strValor.substr(2, 2) + '/' + strValor.substr(4, 4); } else if (strValor.length > 2) { strValor = strValor.substr(0, 2) + '/' + strValor.substr(2, 2); } pegaObj(xElement).value = strValor; } function ValidarDados(){ if (pegaObj("txtCPF").value.length != 14) { alert("Por favor, preencha o CPF a ser consultado somente com os 11 números."); pegaObj("txtCPF").focus(); return false; } if (pegaObj("txtDataNascimento").value.length != 10 || pegaObj("txtDataNascimento").value == "00/00/0000") { alert("Informe a data de nascimento do titular do CPF a ser consultado, com dois dígitos para o DIA e para o MÊS e quatro dígitos para o ANO. Formato: dd/mm/aaaa."); pegaObj("txtDataNascimento").focus(); return false; } mostraEscondeAntirobo(); } function mostraEscondeAntirobo() { if ($("#antirobo").css("display") == "block") { $("#antirobo").css("display", "none"); } else { $("#antirobo").css("display", "block"); ReloadAntiRobo(); } } function CancelarAntiRobo() { mostraEscondeAntirobo(); } function Consultar() { $("#tempTxtCPF").val($("#txtCPF").val()); $("#tempTxtNascimento").val($("#txtDataNascimento").val()); $("#temptxtToken_captcha_serpro_gov_br").val($("input[name*='Token_captcha_serpro_gov_br']").val()); $("#temptxtTexto_captcha_serpro_gov_br").val($("input[name*='txtTexto_captcha_serpro_gov_br']").val()); mostraEscondeAntirobo(); } function ApagarCamposRobo(){ $("#txtTexto_captcha_serpro_gov_br").val(""); $("#tempTxtCPF").val(""); $("#tempTxtNascimento").val(""); $("#temptxtToken_captcha_serpro_gov_br").val(""); $("#temptxtTexto_captcha_serpro_gov_br").val(""); } function ReloadAntiRobo() { if ($("#antirobo").add("display") != "none") { $("#btnRecarregar_captcha_serpro_gov_br").click(); } } adicionado 2 minutos depois Observe que precisa do JQuery e além de verificar CPF tem outras funções úteis aí, como anti-robô. -
Tv lg lcd 42lk450 - Tela Piscando
Luís Roberto C. da Silva respondeu ao tópico de Thiago da Costa CPD em Televisores e projetores
Nesse caso não chegou a queimar ainda. Mas tem que levar a um técnico. Reduzir o brilho é pra evitar que o led queime.
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais