-
Total de itens
1339 -
Registro em
-
Última visita
-
Dias vencidos
15
Tudo que Omar~ postou
-
A tag button não contabiliza o atributo value. Use a tag input. Em caso de uso necessário da tag button capture valores determinados como o próprio texto no elemento ou mesmo a propriedade de atributo dataset. https://developer.mozilla.org/pt-BR/docs/Web/API/Node/textContent https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/dataset Leia isso: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array E evite inventar rodas quadradas como essa:
-
Exibir banner de imediato quando página for carregada
Omar~ respondeu ao tópico de Biel. em Javascript
Experimente esse meu script para usar como banner é responsivo e com suporte a touch-screen. Toda explicação, formas de uso e exemplo funcional se encontra no arquivo html. https://github.com/Spell-Master/sm-web/tree/master/javascript/SlideCarousel -
H1 que preencha toda a largura da container
Omar~ respondeu ao tópico de Alessandro Bodão em Desenvolvimento frontend
Agora a primeira coisa que me vem a cabeça é que você pode está usando o método de propriedade https://developer.mozilla.org/en-US/docs/Web/CSS/calc Quantas letras divididas por 100, esse valor se aplica a font-size do elemento, entretanto deve-se levar em consideração o tamanho de expansão da fonte usada. O negocio é tentativa e erro. Porém não estou tendo nada em mente para uma fonte 100% adaptável, a não ser redefinir o tamanho de acordo com o resolução. Se pensar em algo volto aqui. -
@rogerblower Veja que na minha postagem existe um spoiler onde está escrito "Mostrar conteúdo oculto" Pois bem clique para mostrar, verá então o código da classe. Copie todo o código dentro do spoiler. Como você está usando o wamppserver então dentro da pasta www crie um novo arquivo .php e cole o código da classe. Veja que o nome da classe é CreateCode então salve o arquivo com o mesmo nome. Agora crie outro arquivo .php esse você pode nomear como quiser. Nesse novo arquivo escreva isso: <?php require('CreateCode.php'); // Requisitando o arquivo da classe. $codigo = new CreateCode(); // Instanciando a classe, assim o objeto de orientação será $codigo $resultado = $codigo->defCode(10) . time(); // defCode é um dos métodos públicos da classe var_dump($resultado); // $resultado é o retorno do método Sugiro que estude sobre orientação ao objeto pois isso é o mais vital no php
-
Poste o erro.... A propósito fez o requerimento/inclusão do arquivo que contém a classe? Existe alguma função para auto carregamento de classes?
-
Essa classe possui métodos para geração aleatória de string, veja se algum lhe é útil: Exemplo: $codigo = new CreateCode(); $resultado = $codigo->defCode(10) . time(); var_dump($resultado); // string única, ou seja jamais será gerada outra igual
-
Apesar de considerar a ação de acionar tal artifício sem um caso específico que o usuário tenha influenciado veja isso: https://github.com/Spell-Master/sm-web/tree/master/javascript/ModalShow Para abrir o modal use o método open mesmo sem que um botão chame a função: https://github.com/Spell-Master/sm-web/tree/master/javascript/ModalShow Verás também mais métodos para afins do modal....
-
Saber se todas as palavras de uma frase está cadastrada no banco de dados
Omar~ respondeu ao tópico de landerbadi em PHP
Se eu entendi direito a pergunta você pode está usando o operador LIKE -
Redirecionar Select Option conforme é selecionado
Omar~ respondeu ao pergunta de Jack Oliveira em Perguntas e respostas rápidas
Remova o atributo de comando onchange Adicione um ID ao seletor ou qualquer outra forma para saber no javascript que o seletor é o alvo. Crie uma tag javascript use um ouvinte com inspeção no comando "change": Element.addEventListener('change', funcao_qualquer, false); Crie um função qualquer que será acionada quando o seletor é alterado; assim que o ouvinte detectar que o seletor foi modificado, ela por sua vez verifica o valor para tomar as medidas cabíveis ao desejado. <select id="exemplo"> <option value="">A</option> <option value="B">B</option> <option value="C">C</option> </select> <script> function funcao_qualquer(evento) { if (evento.target.value != '') { /* fazer alguma coisa pois o que foi selecionado não é <empty string> Pode-se usar o redicionamento "location.href" aqui */ } } document.getElementById('exemplo').addEventListener('change', funcao_qualquer, false); </script> -
<?php $senhaA = 'aB1@'; $senhaB = 'a1Bc2DeF3G@&'; function verificarSenha($senha) { if (strlen($senha) < 6) { return ("<p>Menos de 6 Cacteres</p>"); } else if (preg_match_all('/[a-z]/', $senha) < 2) { return ("<p>Menos de 2 Cacteres mínusculos</p>"); } else if (preg_match_all('/[A-Z]/', $senha) < 2) { return ("<p>Menos de 2 Cacteres maiúsculos</p>"); } else if (preg_match_all('/[0-9]/', $senha) < 2) { return ("<p>Menos de 2 números</p>"); } else if (preg_match_all('/[^A-Za-z0-9]/', $senha) < 2) { return ("<p>Menos de 2 símbolos</p>"); } else { return ("<p>Todos requisitos atendidos</p>"); } } echo ( '$senhaA: ' . verificarSenha($senhaA) . '<hr />' . '$senhaB: ' . verificarSenha($senhaB) );
-
Só completando o que o @wanderval mencionou, não é pouco difícil e sim muito. Os recursos de estilização para certos componentes são mínimos, mas assim como ele disse podemos criar elementos que simulam o desejado. Um problema do exemplo apresentado pelo colega é que não há como capturar a opção que o usuário selecionou. Então podemos criar uma tag label vinculado a um input "checkbox" e esse label estará no lugar das tag's <a>. Apresentando uma caixa de seleção mas na verdade é outra coisa ao qual podemos obter o selecionado no servidor quando selecionado algum. Complemento pessoal: Quando eu estava criando esse script https://github.com/Spell-Master/sm-web/tree/master/javascript/SelectOption (que é outro recurso que simula uma caixa de seleção) a princípio estava criando algo que pudesse estilizar livremente cada option interno. No entanto cheguei a conclusão que isso não era correto, se um texto extrapola as limitações é conclusivo que o elemento necessário para tal finalidade não é um <select>
-
Remova os pontos, virgulas etc, esses usando preg_replace antes de criar o array $vetor. Depois de criar o array $vetor execute array_unique para remover índices duplicados.
-
Sim, assim como você brevemente fez use a função count para saber quantos índices existem na super global $_FILES. Além dessa verificação do lado do servidor seria bacana se você também fizesses algo do lado do cliente(usuário) assim poupa processamento do servidor quando algo não está de acordo, basta apenas delimitar os arquivos dentro do input usando o javascript. Mas sempre deve existir filtros do lado do servidor, vai lá saber quem e qual intenção da pessoa que está enviando informação para o servidor! E a propósito leia sobre isso: https://www.php.net/manual/pt_BR/class.finfo.php a última camada de sua proteção depois de 3/4/5/6/7.... verificações que possa executar. Leia aqui também, foi de grande ajuda para mim, e também será para você já que estamos falando de uploads. https://forum.imasters.com.br/topic/587426-até-onde-posso-confiar-na-classe-finfo/ Do lado do cliente se for o caso pode está usando esse script meu: https://github.com/Spell-Master/sm-web/tree/master/javascript/FileTransfer Enfim, se não é o limite que estipulou um loop deve ser usando para salvar os arquivos e registrar eventuais coisas que são necessárias A última coisa e mais importante: Remova esse caractere antes de variável "@" ele ofuscará o erro e qualquer dano para sua aplicação. Eu posso por exemplo enviar outro arquivo dizendo que é uma imagem devido a ofuscação usando o "@" não importa o filtro ou qualquer verificação eu posso dizer que é um png ou jpg ou bmp sei lá, seu php vai aceitar pois qualquer erro está ofuscado e não tem mágica/truque que possa fazer. Na verdade o que estou enviando é um arquivo digamos .php ou .htaccess que me dar total e pleno acesso acesso a sua hospedagem quem sabe até um arquivo .????(ocultei) funcionando obtendo e me repassando qualquer informação que passa pelo seu protocolo http. Não importa o ambiente se é de produção ou entrega esse uso do "@" é para apenas testes de vulnerabilidades e processos de gastos para desenvolvedores contribuintes para aperfeiçoamento da linguagem php. E nunca em hipótese alguma o caractere de ofuscação "@" em junto a uma variável deve ser usado para quem está em aprendizado ou até por profissionais em desenvolver aplicações. Ele existe para um único fim de testes para o próprio código de programação o PHP.
-
Me parece que não adianta nada agora tentar corrigir a codificação de caracteres, pois o problema ocorreu quando os dados foram registrados. Vale ressaltar também que a codificação da aplicação também deve ser definida na mesma codificação usada pelo charset. Detalhes como a própria criação da tabela também vão ter grande relevância, exemplo: CREATE TABLE `exemplo` ( `id` int(11) NOT NULL AUTO_INCREMENT, `texto` varchar(100) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; De qualquer forma um simples solução para codificação de caracteres é nunca usar acentuação e sim entidades das mesmas, exemplo: $salvar = htmlentities('João é um menino'); /* No banco de dados fica salvo assim: - João é um menino Mas sempre que for exibido no html não importa qual a codificação será: - João é um menino */ Se fosse meu caso e não ´pudesse reiniciar o banco de dados estaria a criar um mapa de caracteres desses que estão "diferentes". Criaria um programa - que automaticamente faria a leitura > converteria os estranhos para seu estado real > faria a atualização dos registros usando a função htmlentities. Lógico que alteraria a aplicação para que quando algum registro seja inserido ou alterado passe pela função htmlentities. Então nunca mais teria problemas relacionados ao charset seja lá qual for a codificação usada.
- 6 respostas
-
- acentuação
- acentuação mysql
- (e mais 2 )
-
<!-- Como errar ao escrever HTML ^.^ --> <input id="valorItemExtra" /> <input id="valorItemExtra" /> <input id="#valorItemExtra" /> <input id="#valorItemExtra" /> O atributo ID é único, somente um elemento pode possuir o mesma propriedade. Imagine 1/2/3 ou mais pessoas com o mesmo número de RG ou CPF quem sabe até o mesmo número de telefone, que confusão não seria, no mínimo dizer que isso nunca daria certo. Da mesmo jeito o atributo "ID" deve ser usado, de qualquer forma tanto o javascript quanto o próprio html ou o browser desconsidera isso apenas usando o ultimo ID pois ele sobrescreve os demais porque como dito só pode existir um apenas com a mesma identificação. Resposta para o problema. Remova o erro de usar mais de um ID igual. Busque pelos elementos de input Adicione um ouvinte que detecta quando algum input é alterado. Faça o calculo dentro de um loop pelos elementos quando marcados incrementa o valor.
-
Pode está usando essa classe que escrevi para usar junto o PHPMailer: Crie um arquivo que irá guardar os dados necessários para conexão SMTP <?php defined('SITE_NAME') || define('SITE_NAME', 'fulano'); // Nome que será usado para informar quem está enviando defined('MAIL_TYPE') || define('MAIL_TYPE', 'tls'); // Tipo de criptografia usada defined('MAIL_HOST') || define('MAIL_HOST', 'aaa.bbb.com'); // Servidor de envio defined('MAIL_PORT') || define('MAIL_PORT', 300); // Porta de acesso ao servidor defined('MAIL_USER') || define('MAIL_USER', 'fulano@fulano.com'); // E-mail que vai enviar defined('MAIL_PASS') || define('MAIL_PASS', 'senha_do_fulano'); // senha do e-mail que vai enviar Para enviar: <?php $mail = new Mailer(); $mail->setMail( 'recebe@recebe.com', // e-mail de quem vai receber 'Título do envio', 'caminho para o arquivo.html', [ 'AAAA' => 'Alguma coisa', 'BBBB' => 'Pode-se adicionar quantos índices quiser', ] ); Para o caminho para o arquivo.html você cria um arquivo html, nele você pode definir o layout como quiser como se fosse uma página web mesmo sempre usando o atributo style para tal. Nesse arquivo html você pode está incluindo os parâmetros que criou no array quando definiu os dados de envio exemplo: <p style="color:red">{AAAA}</p> <!-- AAAA será o texto de acordo com o mencionado antes: "Alguma coisa" --> Por fim você manda enviar $mail->send();
-
Eu acho que não dar para fazer, mas posso está enganado. Se fosse para tentar fazer, eu partiria de usar as seguintes aplicações aos quais me vem a cabeça que poderiam ser usadas: https://developer.mozilla.org/pt-BR/docs/Web/API/Window/scroll https://developer.mozilla.org/pt-BR/docs/Web/API/XMLHTTPRequest https://developer.mozilla.org/en-US/docs/Web/API/History/pushState https://developer.mozilla.org/pt-BR/docs/Web/API/Document/createElement https://developer.mozilla.org/pt-BR/docs/Web/API/Node/appendChild https://developer.mozilla.org/pt-BR/docs/Web/API/Node/removeChild Porém não sei se daria certo, pelo fato que não dar para prever quando a pessoa vai clicar em voltar na aba do navegador, porque isso não dar para capturar exceto se criar uma extensão própria para o navegador que comunicaria ao javascript que a ação foi realizada. Ou talvez tenha algum truque para detectar essa ação que nunca ouvir falar. Em uma "gambiarra" eu usaria um setinterval para está constantemente consultado a barra de navegação assim saber quantas páginas devem existir de acordo com a rolagem.
- 1 resposta
-
- html
- javascript
-
(e mais 1 )
Tags:
-
As filtragens que pode aplicar é bem variável, pois depende se vai ou não manter ou permitir determinadas entradas. Digamos que eu não queira uso de um caractere de aspa, então eu não executo o restante do código porque tem uma aspa na informação. Mas se eu quero essa aspa eu posso alterar ela de forma que a mesma não chegue a atrapalhar ou quem sabe até dar algum problema. Ou então não quero essa aspa ao invés parar a execução ou converter, simplesmente removo e meu código pode continuar. Isso também remonta a vários outros caracteres também usados no nosso ou em outros idiomas. O ruim de barrar caracteres atualmente são os conhecidos emoticon comuns em aparelhos móveis. Então bloquear determinados caracteres deve-se assegurar que esses caracteres não vão comprometer a exibição desses emoticon que são compostos caracteres unicode. Vou compor uma situação aqui: <?php class exemplo { private static $string; public static function converter($x) { self::$string = (string) $x; self::codificar(); self::aspas(); return (self::$string); } private static function codificar() { self::$string = mb_convert_encoding(htmlentities(self::$string), 'UTF-8', 'ASCII'); } private static function aspas() { $aspas = ['/\'/', '/"/', '/`/']; $entidades = [''', '"', '`']; self::$string = preg_replace($aspas, $entidades, self::$string); } } // É um texto com "aspas" > e com a mesma 'simples' e invertida `também` $strA = "It'is a text with \"quotes\" > and with the same 'simple' and inverted `also`"; $strB = exemplo::converter($strA); echo ($strB . "<br />"); echo ("<pre>"); var_dump($strB); echo ("</pre>"); Se executar o código $strB mesmo sendo o valor aplicado pela classe é mostrado como o texto original não aparenta que nada foi modificado, até mesmo a função var_dump não monstra nada diferente. Até mesmo se inspecionar o texto pelo navegador não se ver diferença. Isso porque quaisquer caracteres especiais que venha a conter foram substituídos por entidades html então o navegador sempre irá mostrar ele como ele deveria ser exemplo: Mostra " mas na verdade é " Mostra > mas na verdade é > A única forma que existe para que se consiga ver como realmente é o texto é executando ele com algo que não é um interpretador html, PHP é um interpretador html. Podemos usar o javascript: echo ("<script>console.log(\"{$strB}\")</script>"); Então no console do navegador verei como o texto é antes de ser interpretado. Digamos que salvo algum texto no banco de dados, quaisquer eventuais códigos serão salvos no banco sim, mas não como códigos funcionais apenas como uma simples string que nunca será interpretada como função, ou seja nunca sendo executada. Mesmo repassando a mesma eu várias ocasiões. A não ser que eu transforme novamente o texto de entidades a caracteres: echo html_entity_decode(utf8_decode($strB)); // Retorna o código ao estado original Você pode aplicar muito mais conversões usando entidades der uma olhada nisso que achei https://oinam.github.io/entities/ Mas deixo claro que só a função htmlentities já faz um bom trabalho. O ponto forte de se usar entidades é que nunca irá precisar se preocupar com erros de acentuação por causa de codificação da aplicação pois não importa o idioma se é árabe, chinês, inglês ou português, se é utf-8, ANSI ou sei lá, quaisquer problemas relacionados a isso estarão solucionados. João é amigo de maria João é amigo de maria PDO e áspas.... PDO já salva aspas escapadas para evitar justamente a quebra da coluna no banco de dados.
-
Simples dados 1 é substituído por dados 2/ e 3 substitui 2/ 4 substitui 3 etc... etc... etc... Exemplo: $variavel = 'AAA'; $variavel = 'BBB'; $variavel = 'CCC'; var_dump($variavel); // Resultado é (string) CCC pois é a ultima informação igual definida. $variavel = [ 'AAA', 'BBB', 'CCC' ]; var_dump($variavel); // Resultado é (array) AAA,BBB,CCC. Na verdade a substituição já acontece quando o navegador vai enviar as informação, somente enviando a última que substitui todas anteriores. Você pode definir os inputs como um array assim quando chegar ao lado do servidor terá vários dados dentro de uma array na super-global post Exemplo: <input type="text" name="como_array[]" value="A" /> <input type="text" name="como_array[]" value="B" /> <input type="text" name="como_array[]" value="C" /> Então a cada índice você faz o update. Eu não mecho com mysqli, então apenas vou dizer para dar uma lida nisso talvez possa ser útil: https://www.php.net/manual/pt_BR/mysqli.multi-query.php Outra forma é criar cada input individual de acordo com a chave do array de retorno na query Exemplo: $sqlSelect = mysqli_fetch_assoc($result); foreach ($sqlSelect as $chave => $valor) { ?> <input type="text" value="<?= $valor['trackNumero'] ?>" name="trackNumero-<?= $chave ?>"> <?php } Então no lado do servidor os valores serão separados (https://www.php.net/manual/pt_BR/function.substr.php) e indexados em um array. Então percorrer esse array criado e a cada chave idêntica no mesmo índice realizar o update. Ponderações: Filtre melhor os dados que serão processados no servidor, imagine alguém quebrar a sintaxe do php para expor o código fonte que está sendo processado pelo servidor. mysqli_real_escape_string é muito fácil burlar se é que isso funciona mesmo. Nunca passe uma informação vinda do usuário direto dentro de uma query, nunca se sabe o que está sendo executado, injeções de código vem de todo lugar e você não vai querer alguma detonando todo seu baco de dados ou vai? Use query pré preparadas https://www.php.net/manual/pt_BR/mysqli.quickstart.prepared-statements.php Dica pessoal minha: PDO é uma boa (não a melhor) alternativa pois já possui uma pequena proteção em seu mais simples uso. Não é bicho de sete cabeça e mais fácil e seguro de usar que mysqli.
-
Para fins de estudo de caso outros cheguem até aqui. O site sem si fornecido pelo autor do tópico usa como referencia elemento de autua e largura totais, a a propriedade fixed sobre esses elementos para cobrir. Quando uma página é trocada ela não é trocada... Vou explicar apesar de ser um link da tag <a> exite um evento a espera desse click. No momento do click a função responsável troca o conteúdo da tag que irá cobrir ao mesmo tempo que a mostra pois ela está oculta. Os efeitos nada mais é que css de margin, opacity etc... Voltando ao caso do click a função executa Asynchronous JavaScript And XML a um arquivo que irá devolver a resposta como texto html. Durante o processo de comunicação do AJAX, o histórico da url é manipulado. Fazendo pensar que na verdade clicasse em algum link. Quando a resposta está pronta a mesma função altera o html da página com o html da resposta e oculta o elemento que cobre a tela. Etapas: 1 - Obter todos links 2 - Remover comportamento padrão dos links. 3 - Acionar uma requisição ajax quando o link é ativado. 4 - Enviar pedido ao servidor para que forneça o arquivo referente ao link ativado. 5 - Obter solicitar a resposta como text/html. (Etapa 7 inicia aqui.) 6 - Alterar HTML do elemento de animação. 7 - Alterar o histórico da url. 8 - Alterar o HTML do elemento que irá carregar a página. 9 - Alterar o HTML do elemento de animação. O resto é só css simples e básico position/opacity/margin/translate.
-
@Biel. Vá até o diretório de instalação do phpmyadmin vasculhe os arquivos até encontrar aquele que faz esse gerenciamento, então é só editar ele conforme achar que pode fazer melhor. No entanto isso não passa de uma bobagem desnecessária. Não dou detalhes sobre qual arquivo porque não uso o phpmyadmin para gerenciar banco de dados e tabelas. Já trabalhei com redes logísticas e de varejo que possuíam quase 100 ou mais tabelas em um só banco de dados. Esse site mesmo aqui que é o sistema invision power board deve ter umas 80 tabelas por aí. Ter várias tabelas ou não depende da organização de um volume gigantesco de dados.
-
Problema ao gerar array bidimensional dinamicamente.
Omar~ respondeu ao tópico de Rengavitp em Javascript
O ideal é que você faça isso e nos poste o resultado no console: console.log(response) Pois é com essa informação que podemos analisar como a coisa deve ser gerada. Aparentemente a resposta é algum objeto, mas teria que vê-lo para responder corretamente. -
Blz...? Vejamos essa query: SELECT postagem.id, postagem.link, postagem.autor, postagem.editor, usuario.id, usuario.nome FROM postagem INNER JOIN usuario ON postagem.autor = usuario.id Então estou buscando pelos dados da postagem e o autor da mesma. A questão é: Tenho uma tabela "postagem" que guarda informação do "autor" da postagem e quem a editou "editor" Com essa query consigo trazer o resultado da tabela usuario dano a referencia do autor. Mas como eu faria para ter os dados do "autor" e do "editor" na tabela "usuario"? Preciso obter os nomes de quem criou e quem editou.
-
Dar se não for um ambiente web. Exemplo uma página de servidor não pode acessar o conteúdo de um sistema operacional do usuário, graças a deus! Isso é questão de segurança além do mais impede que desinformados fiquem inventando moda com coisas que não tem nada haver. Se é um documento html por exemplo que é executado pelo próprio sistema operacional ao invés de um software como o navegador web pode-se abrir um diretório sim. Somente se for windows, outros sistemas operacionais que são seguros como o linux impedem esse tipo de ação "por segurança", no entanto o acesso pode ser concedido pelo terminal. <a href="file:///C:/">Abrir</a> Outro caso, se você adulterar o navegador ou criar um com essa finalidade pode sim. Pois abrir conteúdo qualquer browser vai impedir quando o link vier de algum ambiente web. Não vou dar mais detalhes pois estamos entrando numa área sombria que viola a segurança na web.
-
Para começar jogue fora essa coisa aí que chama de script que insiste em usar. Então tá, mesmo a lógica não tendo nada haver, e o objetivo disso ser controverso.... Digitei no primeiro input, o que eu digitar substitui o valor no segundo input, mas o segundo input só pode ter no máximo 20 caracteres (está aqui a falta de lógica). <input name="exemplo[]" /> <!-- input[0] --> <input name="exemplo[]" data-recebe="" /> <!-- input[1] --> <script> var input = document.getElementsByName('exemplo[]'), inputAlvo = {}; input[0].addEventListener('keyup', digitar, false); input[1].addEventListener('keyup', digitar, false); function digitar(evento) { inputAlvo = evento.target; if (inputAlvo.dataset.recebe === '') { input[1].value = input[(input[0].value.length >= 1 ? 0 : 1)].value.substring(0, 20); } else { input[1].dispatchEvent(new Event('keyup')); } } </script>