Jump to content

Omar~

Members
  • Content count

    586
  • Joined

  • Last visited

  • Days Won

    15

Everything posted by Omar~

  1. Omar~

    Help java script

    Seria algo como isso?
  2. Omar~

    Previnir MySQL Inject

    Há algum tempo me esbarrei em algo como isso, e francamente na minha situação foi complicado criar uma solução realmente eficaz, mas no final consegui. Antes de mais nada. Tem certeza que não tem como passar algum filtro para "limpar" esses caracteres ou realmente é necessário que permita a inserção de códigos em seu DB? Dê uma lida a respeito de htmlentities http://php.net/manual/pt_BR/function.htmlentities.php Leia também sobre html_entity_decode http://php.net/manual/pt_BR/function.html-entity-decode.php Outros recursos: http://php.net/manual/pt_BR/function.htmlspecialchars.php http://php.net/manual/en/function.htmlspecialchars-decode.php Veja o que se enquadra as suas necessidades Para completar esse assunto foi muito bem discutido aqui: https://forum.imasters.com.br/topic/563187-resolvido-sql-inject-quando-não-dar-para-impedir/
  3. Omar~

    Resgatando dados da url

    Simples Digamos então $endereco = "www.site.com.br/nome"; Pego o endereço e transformo ele em array Então tenho um índice para cada barra No caso ficaria assim: $explode = [0 => 'www.site.com.br', 1 => 'nome']; $explode = explode('/', $endereco); Mas vamos supor que eu tenha essa situação https://www.site.com.br/nome/ Ou seja terei 2 índices vazios pois há ocorrência de // onde uma delas é vazia e no final tenho novamente uma barra sem conteúdo depois Então para resolver isso: $sem_vazios = array_filter($explode); Agora como saber qual é o último índice? Bem, podemos usar de duas formas: Primeira $quantidade = count($sem_vazios) - 1; // É o total de indices menos 1 porque o primeiro índice de um array é sempre zero echo $sem_vazios[$quantidade]; // Resultado é 'home' A segunda forma seria reverter a ordem do array então o que era o último passa a ser o primeiro $reverter = array_reverse($sem_vazios); echo $reverter[0]; // Resultado é 'home'
  4. Omar~

    gerar lista de links âncoras dinamicamente

    Sim, pelo que deu para sacar você está obtendo dados vindo do banco. Sendo assim esses dados estão em array, então basta usar o php para escrever os elementos Exemplo (no caso $array seria um array obtido de dados do banco) <?php $array = [ 0 => [ 'titulo' => 'titulo1', 'conteudo' => 'bla bla bla' ], 1 => [ 'titulo' => 'titulo2', 'conteudo' => 'bla bla bla' ], 2 => [ 'titulo' => 'titulo3', 'conteudo' => 'bla bla bla' ] ]; $contagem = 0; $lista = "<ul>"; foreach ($array as $v) { $contagem ++; $lista .= "<li><a href=\"#{$v['titulo']}\">Título {$contagem}</a></li>"; } $lista .= "</ul>"; echo ($lista); No caso percorro esse array buscando informações para completar a escritura dos elementos que desejo. Perceba a situação, pois abordei em caso não houver um índice para capturar para escrever o número tipo titulo1... 2... usei uma var que se alto incrementa a cada volta do loop. Depende da situação, pois com ambos você pode escrever a página. A diferença é que o PHP não pode manipular a página depois de carregada, e o javascript só consegue manipular depois que a página é carregada.
  5. Omar~

    gerar lista de links âncoras dinamicamente

    Para mim não ficou claro como deveria usar as informações dos elementos H2. Então o que vou mostrar é um pequeno e simples exemplo de como capturar dados desses elementos <article id="buscar_por_isso"> <h2 data-html5="event-a">Primeiro</h2> <h2 data-html5="event-b">Segundo</h2> <h2 data-html5="event-c">Terceito</h2> </article> <hr /> <div id="exemplo"></div> <script> var article = document.getElementById('buscar_por_isso'); // Armazenar o conteúdo de busca var h2 = article.getElementsByTagName('h2'); // Busco todas tag H2 dentro da var article var quantidade = h2.length; // Conta quantos h2 existem var exemplo = document.getElementById('exemplo'); // Só por exemplo mesmo for (var i = 0; i < quantidade; i++) { // fazendo um loop para indexar dinamicamente cada h2 exemplo.innerHTML += h2[i].innerText + '<br />'; // Pegando o conteúdo de texto dentro de cada h2 e escrevendo em outro lugar h2[i].id = 'identificador-' + i; // Acionando um #ID em cada h2 //h2[i].dataset.html5; // isso por exemplo pega o valor do data de cada h2 } </script> Logo isso é questão de javascript e não PHP
  6. Omar~

    TROCAR O % PELO -

    Eu testei aqui e só de olhar não tem erro. Possivelmente você só deu CTRL+C e crtl+V. Esse editor aqui do fórum que é o IPB utiliza-se do ckEditor que já foi bom, mas suas últimas versões está deixando a desejar, assim como o próprio IPB. emfim se copiar aqui não vai copiar o código como ele é de fato e pode copiar caracteres não imprimíveis, e se seu editor de texto/ide não dar suporte a isso você nem ver o que copiou de errado. (Aparentemente isso só acontece no windows) Olha a sintax que você vai entender: http://php.net/manual/pt_BR/function.str-replace.php str_replace(O_QUE_BUSCAR, SUBSTITUIR_POR, STRING_PARA_FAZER_A_SUBSTITUIÇÃO); No caso eu mostrei buscando por conteúdos e substituindo usando arrays
  7. Omar~

    Endereços de páginas não amigáveis - .HTACCESS

    Por exemplo: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([a-z,0-9,A-Z,_-]+)\/?$ index.php?a=$1 [NC,L] RewriteRule ^([a-z,0-9,A-Z,_-]+)\/([a-z,0-9,A-Z,_-]+)\/?$ index.php?a=$1&b=$2 [NC,L] Digamos então http://endereco/restrita_user/ No index eu requisito o arquivo restrita_user.php desse modo $_GET['a'] Seguindo a lógica se for http://endereco/restrita_user/3 Que dar mo mesmo que http://endereco/index.php/?a=restrita_user&b=3 Então quer dizer que posso consultar o segundo valor da url em restrita_user.php desse modo isset($_GET['b']) { echo $_GET['b']; // Isso é só o exemplo que no caso estou dando um echo no valor } Eu particularmente prefiro sempre fazer o hacess desse modo RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?url=$1 Só que nesse caso independente da url inserida só tem 1 parâmetro então para pegar cada valor deve-se filtrar os dados a cada ocorreria de uma certo caractere Exemplo se a url for: https://endereco/artigos/categoria/postagem/tipo/relacao Quer dizer que só terei um único valor sendo $_GET['url']; que é "artigos/categoria/postagem/tipo/relacao" <?php /* * Obs.: isso é só um básico de como seria para pegar cada valor de uma string no caso a url inserida */ function quebarUrl () { $filter = filter_input(INPUT_GET, 'url', FILTER_DEFAULT); $setUrl = empty($filter) ? 'home' : $filter; $arr = explode('/', $setUrl); return array_filter($arr); } Assim sendo eu tenho um array com cada índice contendo a string que aparece a cada ocorrência da barra $arr[0]; // artigos $arr[1]; // categoria $arr[2]; // postagem $arr[3]; // tipo $arr[4]; // relacao Caso não exista alguma entrada eu só terei um índice 0 que é home. De qualquer forma trazer um único índice para tratar cada entrada requer mais atenção para projetar a estrutura do website, como diretório base filtros de entrada caso contrário é meter os pés pelas mãos.
  8. Omar~

    Erro no php

    Poste sua conexão. Não precisa mostrar sua senha de acesso ou qualquer outro dado que usa para conectar assim como na imagem que apresentou está mostrando dados de acesso ao seu database. Dúvidas/dificuldades para iniciantes em PDO pode consultar esse guia https://forum.imasters.com.br/topic/565800-crud-introdução-a-pdo/
  9. Omar~

    Pegar variável de um link A HREF

    No mais prático é enviar o valor do link para uma função quebra-lo em array então pegar o índice que está os dados a ser obtido <script> function exemplo(parametro) { // A variável get vai armazenar o valor que desejamos var get = parametro.split('?cod=')[1]; // get no índice 0 'zero' é doda STR antes de ?cod= // get no índice 1 'um' é doda STR depois de ?cod= // resultado será 17 porque o link é deletar_entrada.php?cod=17 // console.log(get); // Descomente isso e veja no console do navegador return false; } </script> Obs.: Quando se quer obter dados com javascript, não pode redirecionar a página do contrário tudo é perdido no redirecionamento. Então deve-se prever que o link não se execute <a href="deletar_entrada.php?cod=17" onclick="return exemplo(this.href);">Enviar código</a> Depois de ter feito o que tem de fazer aí sim no javascript você pode redirecionar utilizando-se de callback Exemplo: window.location.href = 'endereço para redirecionar';
  10. Omar~

    TROCAR O % PELO -

    E isso aqui ( /s+/ ) dar certo? Sei não eim... Enfim se for o caso de substituir esse caractere além dos espaços por traços tente assim: <?= str_replace(['%', ' '], ['-', '-'], $dados['nome']); ?> // Dica essa TAG <?= é o mesmo que <?php echo
  11. Omar~

    [Resolvido] open modal dentro de array

    Não precisa desculpar, é porque não entendi, e outros com certeza também não entenderiam. Olha não vou ser preciso, porque desconheço como funciona o modal do BS. Apesar de ser um ótimo framework nunca me interessei por ele (pelo fato do BS ser escravo de jquery) Basicamente quem deve fazer a coisa acontecer é uma função ao qual você aciona ela através de evento click enviando o parâmetro os dados que bem desejar. E essa função é responsável por executar o ajax que irá carregar o arquivo dentro de um elemento no modal e também essa função é quem deve o modal Então o índice url no php pode ficar resumido a só o valor de parâmetro mesmo 'url ' => "lembrete-encontrado.php?id= {$result['id']}"
  12. Omar~

    [Resolvido] open modal dentro de array

    Acreditando que url seja um índice de algum array.. hora que você não fez uma pergunta com muito sentido. Então se for para executar o script que está dentro da string pertencente ao valor do índice no array Basta printar o conteúdo dentro do script De qualquer forma você também deve ter uma função modal e ela deve trabalhar com o parâmetro show Isso aqui está utilizando um objeto ou algum protótipo executando uma função estática passado como parâmetro um arquivo com GET. Acredito eu e quase que certeza que newPopup executa AJAX requisitando o arquivo, mas sem a função não há muito o que fazer.
  13. Omar~

    Endereços de páginas não amigáveis - .HTACCESS

    .htaccess Como seus arquivos estão todos "embolados" na raiz só passei a condição de uma camada do GET mesmo no htacess Digamos que queira acessar o cadastro.php seu link é mais ou menos assim não é? <a href="cadastro.php" Pois é usando o htacess acima você vai referenciar o acesso assim <a href="cadastro" title="alguma coisa">Abrir o Link</a> Acessando então sua aplicação irá processar mais ou menos isso: https://seu_endereco/index.php?parametro=cadastro Mas a url será assim https://seu_endereco/cadastro Então é só fazer isso no index Porque o modo de reescrita está pegando tudo que é inserido na url que não seja arquivo ou diretório então redirecionando para o index passando o valor GET parametro para ele. Como está transcrito no arquivo .htacess
  14. Omar~

    AJUDA COM CSS POR FAVOR! :|

    @ronneyvideres Isso é mais questão de back-end do que CSS. Não sei como funciona sua interface ou qual linguagem usa. Mas dita mente quem deve colorir o nome é o sistema interno. Por exemplo o adimin/user são escritos pelo código fonte de alguma maneira. Então é nesse termo que você deve detectar quem é o admim e escrever-lo com uma tag ao qual poderá alterar a cor do nome. Tipo assim, digamos que estou dentro de um loop que mostra os nomes.
  15. Como assim? O que seria célula? Onde estaria essa célula? Em todo caso apresente algum código previamente seu para dar um norte para alguém poder lhe ajudar.
  16. Omar~

    Ocultar detalhe na URL

    Bem.. se não for algo que realmente precize de redirecionamento porque que não usar AJAX? Deixo aqui também uma crítica e sugestão. De não usar isso se não for realmente necessário. Uma vez que isso impede o que os nosso colegas já disseram:
  17. Omar~

    Efeito Parallax sem usar frameworks

    Simples... Veja: https://www.w3schools.com/howto/tryhow_css_parallax_demo.htm https://www.w3schools.com/howto/howto_css_parallax.asp
  18. Omar~

    Mostrar checkbox de acordo com opção do select

    @SeveroSoft Como olhei você está povoando as opções conforme os dados vindos do banco. A lógica é indiferente, basta que capturamos o valor do elemento selecionado e enviamos para uma função repassar via AJAX para outro arquivo. Veja um exemplo genérico, tenho o select e tenho as opções Então no arquivo que irá receber basta que eu consulte o valor e exibo os inputs do tipo checkbox conforme o valor recebido Executar AJAX é muito simples veja isso: https://developer.mozilla.org/pt-BR/docs/Web/API/XMLHttpRequest/Usando_XMLHttpRequest
  19. Omar~

    Validação de Formulário com Javascript.

    @Marcelo Paiva de Almeida Algumas dicas para você já que: Primeiro placeholder não se aplica em textarea Segundo e mais importante. Nunca se deve confiar no javascript para validar fomulários, qualquer pessoa pode editar-lo em seu browser e fazer o javascript executar o que ele quiser, ou mesmo pode desabilita-lo. Não que não possa usa-lo com checagem assim como deseja, mas sempre quem deve confirmar os campos digitados por uma pessoa é o servidor no seu caso aí no arquivo PHP e não a própria máquina do usuário. A sua questão. O jeito mais prático para verificar os campos é pegando os valores dos elementos por meio de identificação de cada input Veja um exemplo (obs.: Não usei o alerta porque acho isso grotesco demais)
  20. Omar~

    Enviar E-mail com PHP

    É a mesma coisa, você só estará mudando de servidor. Só que tem um porém no caso do G-Mail a google é rigorosa quando se trata de segurança da conta de seus usuários. Uma vez que vai usar a própria conta de e-mail para enviar. Possivelmente vai bloquear o envio quando local, terá que acessar o gmail e confirmar que você mesmo quem está fazendo o processo. E quando hospedado novamente será bloqueado, agora a google vai lhe alertar que a hospedagem de sua aplicação está tentando invadir sua conta, então novamente confirmar que é você mesmo quem fez tal ação. O mesmo torna a acontecer se mudar de hospedagem. (Um porre mesmo, mas concordo plenamente com esse procedimento da google) Em todo caso fiz um rabisco aqui (Sem testar, mas acho que irá funcionar) E o arquivo Html (estilize-o conforme as necessidades/vontade) Classe Mail e PHPMailer https://mega.nz/#!aIlCWCzA!--g0o8bGV_mQiYTRoGoBBPmJDv_UXpBLYgEpvpnH698 Obs.: Não é a versão mais recente porque de uns tempos para cá o PHPMailer se tornou uma porcaria.
  21. Omar~

    Enviar E-mail com PHP

    Você diz enviando através de um servidor local (seu computador)? Sim tem como, você deve usar um SMTP para isso, e configurar o servidor local para tal ação. Veja essa classe a própria descrição dele mostra como fazer, além que é uma classe para envios usando PHPMailer
  22. Omar~

    Como converter esse JQuery em JavaScript?

    Muito simples... Vamos a um pequeno guia porque qualquer coisa sem jquery é muito mais eficiente independente da situação. A primeiramente temos que pegar o elemento que queremos acionar quando for clicado. Pode ser feito de suas formas document.getElementsByClassName('wrap'); Qualquer elemento no DOM que tiver a class 'warp' é alvo da funcionalidade. document.querySelectorAll('.wrap a'); Qualquer elemento no DOM que tenha a class 'warp' e que seja de TAG 'a' é alvo da funcionalidade. Diferença entre os dois? A primeira consome menos memória, mas trás margem de erro caso não saiba projetar bem o HTML, uma vez como dito qualquer elemento que tenha essa className é alvo, o segundo já trás menos responsabilidade de ter que programar corretamente o javascript Vou optar pelo segundo porque não sei como é toda sua estrutura HTML, então armazeno todos os elementos em variável var wrap = document.querySelectorAll('.wrap a'); Agora é simples, faço um loop pedindo a contagem de todos os elementos alvos e armazeno eles em array for (var i = 0; i < wrap.length; i++) {} Uma vez que tenho todos elementos em array basta que eu adicione um evento click em cada um deles, acionando ele com parâmetro para não ter que referenciar o atual usando this wrap[i].addEventListener('click', function (e) {}); Agora o que tenho que fazer é pegar esse elemento que foi clicado e informar para o javascript que quero trabalhar seus elementos filhos no DOM .wrap a > .box var elemento = e.target.parentNode; Dentro dessa questão sei que só tem um parente então já ataco diretamente ele adicionando a class que interessa. elemento.nextElementSibling.classList.toggle('active'); Resultado final: var wrap = document.querySelectorAll('.wrap a'); for (var i = 0; i < wrap.length; i++) { wrap[i].addEventListener('click', function (e) { var elemento = e.target.parentNode; elemento.nextElementSibling.classList.toggle('active'); }); } Devido ao uso da função nativa toggle se a class não existe ela é adicionado, do contrário é removida Nota: É necessário que o todo HTML já tenha sido devidamente processado pelo navegador, caso contrário não será possível localizar os elementos (Básico de manipulação com javascript "adicione o script no final do documento antes do fechamento da TAG body")
  23. Então @danicarla desconheço uma forma de detectar o exato local com eficiência onde está o cursor entro de um input text. Uma vez que a pessoa pode está lá em tal caractere e clicar no início. Enfim quando se usa o replace na verdade o javascript reinscreve todo o conteúdo do input e não a chave atual por isso o cursor sempre vai para o final quando a função é ativada. Então desconheço uma forma de manter-lo na última chave inserida mesmo que ela não seja a última do total de chaves. Olhando o exemplo que mostrou e me parece que funciona bem só posso citar algumas coisas para modificar: A expressão usaria assim: replace(/[^a-zA-Z À-ú 0-9]/g, ""); Assim sendo qualquer caractere que não seja alfabético é recusado, porque da forma que você fez letras acentuadas não passarão pela expressão. Também mudaria a forma de ativação da função de onKeyUp para onkeypress.
  24. Na verdade para fazer isso nada mais é que mudar a borda de cor. O elemento .quadrado mesmo sem efeito hover ele já possui a borda de 4px da mesma cor que o plano de fundo ou transparente. Então ao entrar sobre evento hover é só trocar a borda. .quadrado { border: 4px solid #fff } .quadrado:hover { border: 4px solid #000 } Obs.: Você pode somente trocar a cor sem reprojetar a borda se assim desejar.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.