-
Total de itens
1325 -
Registro em
-
Última visita
-
Dias vencidos
15
Posts postados por Omar~
-
-
<button id="exemplo">Segure esse botão</button> <script> var botao = document.getElementById('exemplo'); botao.addEventListener('mousedown', pressiona, false); botao.addEventListener('mouseup', solta, false); var qualquer = 0; var intervalo; function pressiona() { window.intervalo = setInterval(algumacoisa, 100); } function algumacoisa() { window.qualquer += 1; console.log(window.qualquer); } function solta() { clearInterval(window.intervalo); window.qualquer = 0; } </script>
-
19 horas atrás, Ak_Ray disse:Notice: Undefined variable: pdo in C:\xampp\htdocs\Sistema de Cadastro beta0.1\AreaPrivada.php on line 53
Isso é porque a variável pdo não existe!
Logo ela deve ser criada para instancia da classe PDO. Se ela não foi criada ou ouve erro ao criar a instancia irá gerar esse erro.
19 horas atrás, Ak_Ray disse:Não entendi muito bem esta passagem do seu tópico: "
$update->execute(['username' => 'Chapolin', 'userlogin' => 'Chiquinha', 'userid' => 1]);
Aqui é subjetivo.... Enfim basicamente é passar um array com os índices esses serão os mesmos do statement e os valores de cada índice é os dados a manipular.
-
Primeiramente cuidado para não aprender da forma errada!
13 horas atrás, Ak_Ray disse:então decidi aprender sozinho por tutoriais na internet
Bom o que irá fazer para trazer os resultados é dar um select na tabela que deseja, assim como está fazendo. Então é só executar um fetchAll nos dados.
Exemplo:
$sql = $pdo->prepare("SELECT * FROM usuarios"); $sql->execute(); $dados = $sql->fetchAll(PDO::FETCH_ASSOC); if($sql->rowCount()) { echo "<pre>"; var_dump($dados); echo "</pre>"; }
Nesse caso é todos os dados da tabela "usuarios", mas você pode buscar por ídices expecíficos também através de bind ou statements.
Eu preparei um tópico aqui no iMasters para ajudar quem se adentra no PDO, pode ser útil para você nesse começo.
https://forum.imasters.com.br/topic/565800-crud-introdução-a-pdo/
-
A solução para o problema se encontra nesse post:
imageUpload.php é uma classe para uploads de imagens minha.
-
-
Normalmente e o que fazemos sempre é utilizar de armazenamento em banco de dados.
Ao carregar uma página mandamos a informação de uma consulta a ser realizada então preenchemos cada coisa com os resultados obtidos pelo banco de dados.
-
Assim acho mais prático:
str_replace(['(', ')', '-', ' '], null, '(DDD) 9999-9999');
Resultado:
DDD99999999
-
Conseguir fazer usando uma "gabiarra" aqui.
Veja, o que eu fiz foi usar métodos diferentes a cada 2 itens da lista, enfim deu certo ^.^
<style> ul { list-style: none } ul > li:nth-child(1), ul > li:nth-child(2) { display: table-cell } ul > li:nth-child(3), ul > li:nth-child(4) { display: inline-block } </style> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ul>
-
Quando você faz a seguinte a manipulação de um elemento dessa forma:
elemento.style.display = "(table|block|inline-block|etc..)";
Você está removendo todo seu atributo style, substituindo o que existia pelo novo. Pode se feito assim também desde que as demais propriedades do elementos estejam em folha de estilo.
Quando se ataca diretamente o uma propriedade de atributo específico usamos
setAttribute('atributo', 'propriedade e valor a alterar/adicionar');
Aqui também devo ressaltar, que ficar buscando por vários elementos quando se aciona uma função não é o ideal, pois perdemos em performasse ao executar uma função. Devemos evitar ficar fazendo muitas varreduras no DOM, para melhor desempenho (lógico que em algumas situações isso é impossível).
O ideal por exemplo é buscar todos esses elementos em um pré carregamento armazena-los e então usar esse armazenamento para atacar os elementos.
16 horas atrás, vinicius59 disse:Então, eu queria certinho é esse script só que em vez de precisar selecionar, for por botão do teclado, o numero 1 seria verde o numero 2 vermelho e o numero 3 cinza, você consegue? e esqueci de colocar que tem que ficar em fileira os quadrados que eu por, e não carregar só um quadrado.
Não sei ainda se és isso que procura mas veja:
<style> #vermelho, #verde, #azul { float: left; /* Eles vão ficar um ao lado do outro */ width: 200px; height: 200px; display: none } #vermelho.mostrar, #verde.mostrar, #azul.mostrar { display: block } #vermelho {background-color: red} #verde {background-color: green} #azul {background-color: blue} </style> <div id="vermelho"> Quadrado vermelho </div> <div id="verde"> Quadrado verde </div> <div id="azul"> Quadrado azul </div> <!-- Necessário lipar os dados flutuantes para correta orientação dos supostos novos elementos que podem aparecer depois dos quadrados --> <div style="clear: both"></div> <script> // O evento keypress detecta quando uma tecla é acionada document.addEventListener('keypress', executaFuncao, false); // Armazenamos em um array quais são os elementos que vamos manipular var elementos = [ document.getElementById('vermelho'), // elementos[0] document.getElementById('verde'), // elementos[1] document.getElementById('azul') // elementos[2] ]; function executaFuncao(e) { var key = e.keyCode; switch (key) { case 49: // Tecla 1 elementos[0].classList.toggle('mostrar'); // Vermelho break; case 50: // Tecla 2 elementos[1].classList.toggle('mostrar'); // Verde break; case 51: // Tecla 3 elementos[2].classList.toggle('mostrar'); // azul break; /* * // Isso está em comentário caso queria que todos * // eles apareçam se qualquer uma das teclas forem * // acionadas, remova a bateria de cima e deixe essa. case 49: // Tecla 1 case 50: // Tecla 2 case 51: // Tecla 3 for (var i = 0; i < elementos.length; i++) { elementos[i].classList.toggle('mostrar'); } break; */ } } </script>
Nesse exemplo usei as sequências de injeção classList.toggle, o que fará com que o elemento classificador seja adicionado quando clicado no botão ou removido caso seja acionada a tecla novamente.
Se quiser que eles continuem mesmo clicando novamente terá que modificar para:
classList.add
Nesse caso teremos que consultar se o elemento não tem o que vai adicionado caso contrário inicia o vicio HTML.
<div class="mostrar mostrar mostrar mostrar mostrar.... Isso irá se repetir toda vez que uma das teclas forem pressionadas.
Para prevenir:
case 49: // Tecla 1 if (!elementos[0].classList.contains('mostrar')) { // Verificamos se não tem a class "mostrar" elementos[0].classList.add('mostrar'); // Vermelho } break; /* ou no segunda questão */ for (var i = 0; i < elementos.length; i++) { if (!elementos[i].classList.contains('mostrar')) { elementos[i].classList.add('mostrar'); } }
-
Existem incontáveis formas de fazer algo assim, cada qual para seu cada qual.
Se você explicar melhor o que deseja poderá ter uma resposta mais coesa.
<div id="quadrado" style="display:none; height:50px; width:50px; background-color:red"> Isso só aparece se clicar em algum botão </div> <button class="botao">Botão 1</button> <button class="botao">Botão 2</button> <script> var btn = document.getElementsByClassName('botao'); for (var i = 0; i < btn.length; i++) { btn[i].addEventListener('click', function () { document.getElementById('quadrado').setAttribute('style', 'display:block'); }, false); } </script>
-
Poderia ser somente código mau escrito ou não funcional, seria melhor nos apresenta-lo para melhor análise.
-
Certo que o mercado de apps para mobile cresce mais e mais, e pretendo começar a embarcar nessa jornada.
Venho a pedir sugestões do que estudar e onde estudar, hora material de qualidade porque como vejo em outros seguimentos a web está cheia de coisa e 99% do conteúdo não presta.
Por isso esse pedido para que eu não fique dando voltas em círculos e ainda não aprenda corretamente.
Basicamente quero criar aplicativos para smartfones que interajam com websites que desenvolvo, dando um opcional a mais aos clientes que me procuram.
-
@Felipe Guedes Coutinho Obrigado.
Logo de cara na lógica fui pelo uso do JOIN, mas fiquei confuso em como montar a sintaxe da query quando usando o LIKE.
Sua ideia funcionou direitinho aqui.
Pena que o forum está com com problema na função para dar reput em seu post
-
Ambos.
Vamos supor que eu tenha um classificado conteudo.
logo no css o comum vermos por exemplo:
.conteudo {color:red}
Assim sendo todos os elementos que tenham esse classificador irá ter o texto da cor vermelha.
Mas se por acaso eu queira somente que o texto fique vermelho em tags P, ataco pelo elemento seguido do classificador
p.conteudo {color:red}
Quando você passa o elemento primeiro você dar mais responsabilidade ao css manipular elementos.
Não acho uma boa ficar fazendo isso em todo e qualquer elemento, somente quando for realmente necessário.
-
Estou precisando da ajuda para montar a seguinte query.
Ao realizar uma consulta usando o operador LIKE em duas colunas de uma tabela, ao qual obtenho o id de um vinculo em outra tabela.
No genérico a query está assim sem entrar na outra tabela
CitarSELECT
page_link,
page_sector, /* AQUI */
page_content
FROM
pages
WHERE
page_title
LIKE:datafind
OR
page_content
LIKE
:datafind
Alí onde tenho a coluna page_sector é o mesmo dado de uma coluna "sector_hash" em outra tabela, ao qual essa tabela armazena os setores, nessa tabela preciso resgatar o valor da coluna "sector_link"
Ou seja ao realizar a consulta preciso renderizar que a página encontrada pertence a tal setor, para que possa passar os links corretamente.
Assim sendo o usuário irá buscar pelo título ou conteúdo das páginas nos resultados devem vim o link do setor que essa página pertence e a própria página.
Porque passando o hash da página a url fica muito estranha e queria otimizar isso exemplo:
de
https://siteurl/ZR7lGBUIv8YICXUBw2RCP0WgxC7AFe1548702043/pagina
para
https://siteurl/setor/pagina
-
Primeiramente esse tópico deveria está em https://forum.imasters.com.br/forum/6-javascript/
Agora a sua dúvida a resposta é sim. Esse é o conceito de orientação a objeto.
Em diversas linguagens de programação usamos classes, essas compõem atributos, parâmetros e métodos que executam ações diferenciadas, mas os dados podem ser compartilhados entre eles.
O mesmo pode ser feito em javascript.
<script> var MinhaClasseJS = function () { this.atributo_publico; var atributo_privado; this.metodoPublico = function (parametro) { atributo_publico = document.getElementById(parametro); if (metodoPrivado()) { console.log(atributo_privado); } else { console.log( 'O atributo público é:\n' + atributo_publico + '\n' + 'O atributo privado é:\n' + atributo_privado ); } }; function metodoPrivado() { if (!atributo_publico.value) { atributo_privado = 'Coloque algum caractere no campo de texto'; return (true); } } }; </script> <input id="texto" type="text" /> <button type="button" onclick="objeto.metodoPublico('texto')">Executar</button> <script> var objeto = new MinhaClasseJS(); </script>
Nesse exemplo temos temos atributos parâmetros e métodos que usam dados que estão fora de seu escopo mas pertencem a mesma classe.
E executamos a partir de um objeto criado da class.
-
Em 23/07/2019 at 10:01, lordstarlight disse:A página de erro (404.php) tem um script phpmailer que envia email me infomando do erro.
Ele pega a url e envia para mim informando o que o usuário digitou.
Só que mesmo sem exibir esta página de erro ele envia o email, mesmo acessando qualquer página.
De uma revisada nos códigos. Porque condicional só é válida quando entra em sua condição.
Pode ser que esteja executando o código em outro local.
Verifique também os fechamentos de laços pode ser que uma condicional esteja sendo executada dentro de outra assim executando o código que não era para ser executado.
Sugiro que faça uma depuração/revisão em todos arquivos envolvidos.
Uso dos blocos try são mais eficientes pra manipulação de dados aleatórios.
-
Você pode aplicar uma regra para cada entrada na url tipo assim:
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([a-z,0-9,A-Z,_-]+)\/?$ index.php?page=$1 [NC,L] RewriteRule ^([a-z,0-9,A-Z,_-]+)\/([a-z,0-9,A-Z,_-]+)\/?$ index.php?a=$1&busca=$2 [NC,L]
No seu caso a primeira entrada é $_GET['page']. Nesse exemplo o mesmo é, mas como temos uma segunda regra temos o que vem depois de $_GET['page'] entra outro caso inserido $_GET['busca']
Ou seja se a url vier assim: https://site/entrada/carrinho
Basta que no arquivo que eu incluir com $_GET['page'] eu tome as ações a partir de segunda entrada que seria $_GET['busca'].
Esse exemplo com execução pode ser adquirido pelo meu GIT: https://github.com/Spell-Master/Get-UrlAmigavel/
Se por acaso venha a utilizar muitos parâmetros de entrada, meio óbvio que ficar criando dezenas de regras não é o ideal.
Nesse post apresentei algo viável nessa situação:
-
Pode-se adicionar isso a tag head
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
Assim você indica a escala inicial da página, que browsers vão se orientar por isso para aplicar o media query.
Sem isso o browser nunca irá saber em qual escala de resolução está a página.
Exemplo:
<head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Título da Página</title> </head>
-
Claramente o chrome foi danificado.
É muito comum isso quando se acessa pricipalmente blogs, e sites adultos, quando não se tem um sistema de proteção que ofereça um mínimo de segurança no caso seu o AVG.
Sugiro a completa remoção do software e seus dados da máquina.
1 - clique com o botão direito sobre o ícone de atalho do chrome.
Note se na caixa "Destino" depois de "chrome.exe" existe algo escrito além da àspa, se sim apague o restante do texto.
2 - Reinicie a máquina e faça a iniciação segura.
3 - Desistale o Chrome.
4 - Vá até o diretório:
C:/Users/SEU_NOME_DE_USUARIO/Local/
E apague a pasta "google".
5 - Reinie a máquina e faça o logon normalmente.
6 - Reinstale o Chrome.
Verifique se o problema persiste.
Caso sim, o problema é mais grave, scarners podem encontrar a anomalia.
Mas a melhor opção é a formatação do disco.
E só adicinar o backup depois da instalação de um software para proteção de ponta... Sugiro o Kaspersky.
-
Em 12/07/2019 at 09:24, WitchMad disse:Cara, muito obrigado, já me ajudou muito!
Mas ainda sobra umas dúvidas minha:
Como faço para buscar os valores de id e título que irão sair na url?
Como redireciono para a página post?
Simples não?
Tudo que entra e GET "url" ao qual temos o array, é só ir ap índice do array que contém essa informação.
Isso é você quem vai controlar no código ao repassar os links.
-
22 horas atrás, TheRonaldoStar disse:Eu quero que a listagem da ultima mensagem de cada usuário não todas as mensagem daquele usuário, ou seja somente da ultima mensagem de cada um usuário
Nesse caso você terá que ter uma coluna na tabela para armazenar a data e a hora da última postagem, daí é só fazer a comparação com a data e a hora atual mais atual, só exibindo esse resultado.
Só uma coisa queria ressaltar aqui:
Você está lançando consultas dentro de loop, isso sobrecarrega demais e você perderá em performasse.
O ideal é você fazer as consultas separadamente armazenar os valores daí manipular esses resultados.
Há algum tempo me deparei com essa situação similar veja:
https://forum.imasters.com.br/topic/580417-separar-resultados-com-base-de-outra-tabela/
-
-
Existem diversas formas de trabalhar com urls amigáveis.
Eu gosto de fazer assim:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?url=$1
Então tudo que entrar depois do endereço do website passa ser uma string url mesmo com barras etc...
O que faço é buscar todas as ocorrências das barras e separar em índices
<?php /* * Isso poderia ser um método de classe que retornasse o array $url */ // Pegamos o valor que vem do apache pelo htacess url $filter = filter_input(INPUT_GET, 'url', FILTER_DEFAULT); // Se existir algum valor usamos se não o valor padrão será inicio $setUrl = empty($filter) ? 'inicio' : $filter; // Quebramos então em um array todas as ocorrencias de barras $explode = explode('/', $setUrl); // Caso haja algum valor nulo ou vazio ele será removido $url = array_filter($explode); var_dump($url);
Então nesse caso (removi os acentos):
post/1/tecnologia-da-informacao-ligada-ao-poder-judiciario-um-pequeno-historico
<?php $url[0]; // É "post" $url[1]; // É "1" $url[2]; // É "tecnologia-da-informacao-ligada-ao-poder-judiciario-um-pequeno-historico"
No mais é criar tratamentos para converter espaços em traços e acentos em letras comuns. E principalmente para remover códigos caso vá trabalhar com banco de dados.
AutoPlay
em Desenvolvimento frontend
Postado
Acontece que por padrão os browsers já estão configurados para bloquear execução automática de mídias para segurança do usuário. Ou seja para uma reprodução desse tipo requer autorização para ser efetuada.
Isso é recente, mas teve de ser adotado (graças a deus) pelo abuso de má prática que forçar um usuário a fazer o download de um arquivo sem a autorização dele (quando se insere/carrega um arquivo pelo source o download do arquivo será feito).
Então o que impede daquele aquivo que será feito o download automaticamente esteja infectado com alguma ameaça?
Mas pelo que fiquei sabendo esse não foi o principal critério do bloqueio e sim foi por causa de propagandas.
Enfim para que o atributo autoplay funcione o usuário deve autorizar que aquele endereço específico pode enviar arquivos seja, áudio seja vídeo.
Segundo um artigo que li a algum tempo a equipe do Mozilla já cogitou em remover suporte a isso em seu navegador.