Jump to content

Omar~

Members
  • Content count

    594
  • Joined

  • Last visited

  • Days Won

    15

Everything posted by Omar~

  1. Omar~

    Tag IMG aparecendo com borda no Firefox

    Acredito que sua melhor alternativa é abrir o inspetor do firefox, e inspecionar essa imagem em questão. Pela ferramenta você poderá editar a folha de estilo temporariamente, assim poderá com testes descobrir o que de fato está acontecendo.
  2. Omar~

    AJAX - Enviar form e string

    Olá @FabianoSouza Existe alguma necessidade do arquivo que está enviando possuir o mesmo nome de quando é enviado? Porque eu vejo a seguinte situação: Usuário A envia um arquivo com o nome iMasters.jpg Usuário B também envia um arquivo iMaster.jpg mas a imagem é diferente da anterior Logo o usuário B vai substituir o arquivo do usuário A no servidor. Isso eu não sei dizer até fiquei curioso a respeito. Mas já enviei post com muito mais de 1.000 caracteres.
  3. Omar~

    despois do cadastro redirecionar para index.php

    Estranho acho que deveria funcionar com o ajax da biblioteca jQuery. Por essas e outras que a muito aboli completamente o uso dessa biblioteca que no meu ponto de vista é desnecessário em qualquer situação. O que posso fazer por você então é lhe ajudar com um script meu mesmo para o uso de ajax. Segue o exemplo: Digamos que esse seja o index ou qualquer outro arquivo onde tenho um formulário cujo quero enviar os dados para outro. <link href="AjaxRequest.css" rel="stylesheet" type="text/css"/> <script src="AjaxRequest.js" type="text/javascript"></script> <div id="resultado"></div> <form id="exemplo" onsubmit="return ajax.form('exemplo', 'resultado', 'post.php');"> <input type="text" name="texto-a-enviar" /> <input type="text" name="texto-a-enviar-b" /> <button>Executar exemplo</button> </form> <script> var ajax = new AjaxRequest(); </script> Logo então nos parâmetros do método são 1 - O ID do formulário 2 - Onde mostrar o resultado 3 - Arquivo ao qual os dados serão enviados No caso é post.php <?php if (!isset($_POST['texto-a-enviar'])) { echo ("Algo errado o primeiro input não foi recebido"); } else if (!isset($_POST['texto-a-enviar-b'])) { echo ("Algo errado o segundo input não foi recebido"); } else if (empty($_POST['texto-a-enviar'])) { echo ("Digite algo no primeiro input"); } else if (empty($_POST['texto-a-enviar-b'])) { echo ("Digite algo no segundo input"); } else { echo ("<pre>" . var_dump($_POST) ."</pre>" . "<hr />" . "Aguarde 2 segundos" . "<script>" . "setTimeout(function () {" . "window.location.href = 'index.php';" . "}, 2000);" . "</script>"); } Você pode encontrar essa classe que desenvolvi para ajax tanto para GET quanto para POST através do meu GIT: https://github.com/Spell-Master/sm-web/tree/master/scripts/AjaxRequest Caso queira mais exemplos de uso dessa classe javascript pois existem outros métodos segue o link de download dos exemplos: https://drive.google.com/file/d/1vCvakLXwvYRhCW8-B3GpGKucpOINGl-l/view?usp=sharing
  4. Omar~

    click com slidetoggle e ANCORA no TOP do id

    Bem... Pelo que eu entendi você quer mover um elemento para outro local e isso é simples: <div id="topo">Topo</div> <hr /> <div>Esse é o meio</div> <hr /> <div id="baixo">Elemento de baixo que vai para o topo</div> <button onclick="mover();">Mover o de baixo para o topo</button> <script> function mover() { var baixo = document.getElementById('baixo'); document.getElementById('topo').appendChild(baixo); } </script> Sobre o efeito sanfona que acredito que seja o que realmente procura. veja esse script que desenvolvi faz algo similar ao seu objetivo, é bem simples de usar: https://github.com/Spell-Master/sm-web/tree/master/scripts/Accordion Com o arquivo CSS e JS incluso crie a seguinte situação <div id="exemplo"> <button class="acc-button"> Primeiro </button> <div class="acc-container"> Elemento interno do primeiro </div> <button class="acc-button"> Segundo </button> <div class="acc-container"> Elemento interno do segundo </div> </div> depois basta instanciar a classe: Isso deve ficar abaixo dos elementos acima pode até ficar no final do "body" <script> var objeto = new Accordion('exemplo'); </script> Obs.: Não precisa usar jQuery
  5. Omar~

    click com slidetoggle e ANCORA no TOP do id

    Você diz um efeito tipo sanfona? Você clica no item ele expande e e quando clica novamente ele oculta Só que podemos ter diversos itens desses? Tenho esse script pronto se for o caso.
  6. Omar~

    como logar no banco com senha criptografada

    Criar o hash durante o cadastro $senha = password_hash("sua_senha", PASSWORD_DEFAULT); Armazene a variável $senha no banco Conferir se a senha bate durante o login: if (password_verify("senha_digitada", "senha_do_banco_armazena_vinda_da_query")) { // Senha confirmada } https://www.php.net/manual/pt_BR/function.password-hash.php
  7. Omar~

    Passar função javascript em uma sql

    Impossível desse jeito... Graças a Deus que é.... O script do servidor no caso o PHP é executado dentro do próprio servidor, enquanto que um script js é executado na máquina do usuário. O que você pode solicitar é uma requisição ajax pelo usuário até servidor enviando esse dado que deseja por GET para outro arquivo ao qual irá executar sua função PHP para lançar a query . Eu mesmo desenvolvi uma classe JS que pode fazer isso: https://github.com/Spell-Master/sm-web/tree/master/scripts/AjaxRequest (Não esqueça de fazer um tratamento desses dados dentro do servidor antes de colocar-lo no banco)
  8. Omar~

    despois do cadastro redirecionar para index.php

    Corrigindo quando usando o PHP, porque esqueci de escrever O correto é usar a realocação header('Location: index.php'); Uma solução quando usando javascript // A linha de vermelho que você marcou seria aqui ?> <div id="resultado"></div> <script> document.getElementById('resultado').innerHTML = "O texto ou uma formatação HTML que preferir"; setTimeout(function () { window.location.href = 'index.php'; }, 2000); // 2000 equivale a 2 segundos <script> <?php Quando o script for executado ele vai pegar a tag div#Resultado e vai compor a marcação. Logo em seguida começa uma contagem de tempo para redirecionar automaticamente. Só não sei se realmente funciona com esse negócio de jQuery pois só uso javascript nativo.
  9. Omar~

    despois do cadastro redirecionar para index.php

    O problema é que sua mensagem não vai aparecer, pelo fato que o script vai redirecionar assim que executado. Enfim... Alí onde você marcou a linha de vermelho: header('index.php'); Ou sando javascript que dar no mesmo resultado: echo ("<script>window.location.href = 'index.php';</script>");
  10. Omar~

    Como faço para unir dois alerts

    var a = 'olá'; var b = 'mundo', alert(a + '-' + b); resultado olá-mundo Só acho que usar o alerta de janela completamente grotesco independente da situação.
  11. Omar~

    Menu

    Entre com outra <ul> e os itens do sub-menu usando <li> dentro dessa nova ul. No resto é só usar o css ou javascript para obter o resultado final (ocultar/mostrar ou sempre visível).
  12. Omar~

    Como remover códigos maliciosos

    Que tipo de código malicioso? Qual a linguagem? Qual plataforma? De onde pode vim os códigos? Onde serão salvos executados? Informações como essas ajudam na resposta, pois não há como responder sem saber como ou em que será usada.
  13. Bom ainda não vi um tópico similar a esse aqui no iMasters, e também não condiz com seu conteúdo bruto. Mas vim aqui porque acredito que alguém possa me dar uma luz. Bem possuo um Sansung j4+, que ao realizar a gigantesca atualização para do sistema para versão 9 o telefone passou a apresentar inúmeras anomalias, como não atender ligação, não fechar aplicativos, falha em carregamentos, lentidão extrema, descarregamento da bateria em poucos minutos, além de super aquecimento entre outras sem mencionar que a interface ficou extremamente ridícula (horrível mesmo). Tentei localizar um lugar para reportar ou reclamar de tais problemas, mas não encontrei. Penso que se eu restaurar as configurações originais de fábrica ou formatar possa voltar o sistema a versão anterior (QUE FUNCIONAVA LINDAMENTE), porém me rebate nos termos de atualização que se não fazer como algumas pessoas me disseram o android pode deixar de funcionar. Quem está mais por dentro desse ramo poderiam me dar dicas de qual a melhor forma de proceder? Poque com essa versão 9 do android estou a ponto de atirar o telefone na parede de tão ruim que ele ficou.
  14. Bom ainda não vi um tópico similar a esse aqui no iMasters, e também não condiz com seu conteúdo bruto. Mas vim aqui porque acredito que alguém possa me dar uma luz. Bem possuo um Sansung j4+, que ao realizar a gigantesca atualização para do sistema para versão 9 o telefone passou a apresentar inúmeras anomalias, como não atender ligação, não fechar aplicativos, falha em carregamentos, lentidão extrema, descarregamento da bateria em poucos minutos, além de super aquecimento entre outras sem mencionar que a interface ficou extremamente ridícula (horrível mesmo). Tentei localizar um lugar para reportar ou reclamar de tais problemas, mas não encontrei. Penso que se eu restaurar as configurações originais de fábrica ou formatar possa voltar o sistema a versão anterior (QUE FUNCIONAVA LINDAMENTE), porém me rebate nos termos de atualização que se não fazer como algumas pessoas me disseram o android pode deixar de funcionar. Quem está mais por dentro desse ramo poderiam me dar dicas de qual a melhor forma de proceder? Poque com essa versão 9 do android estou a ponto de atirar o telefone na parede de tão ruim que ele ficou.
  15. Omar~

    Salvar sem refresh na pagina

    É só usar formulários que ao invés de redirecionar para outro arquivo. O form é submetido por javascript que executará ajax no arquivo que salva os dados. Veja esse script que desenvolvi que é muito simples de usar "que serve para qualquer tipo de formulário, e para qualquer requisição ajax e não gera warnings e muito leve para ser processado" https://github.com/Spell-Master/sm-web/tree/master/scripts/AjaxRequest <div id="mostrar_resultado"></div> <form id="exemplo" onsubmit="return ajx.form(this.id, 'mostrar_resultado', 'arquivo_que_recebe_os_dados.php')"> <input type="text" name="valor_a_ser_enviado"/> <button>Enviar via Ajax</button> </form> <script> var ajx = new AjaxRequest(); </script> Basicamente para o uso você deve criar o objeto que no caso aqui se chama ajx. Então para salvar formulário você pode usar o método form por exemplo "existe outro" Que consiste em 3 parâmetros. 1º - O #ID do form 2º - O #ID de onde o arquivo deve ser executado 3º - O arquivo ao qual vai receber os dados e será mostrado no segundo parâmetro. Nada a mais pois todos inputs que tiverem o name serão enviados para os próximo arquivo.
  16. Omar~

    Dúvida sobre alinhamentos de elementos em CSS

    Isso é relativo pois depende do resultado, e pode ser feito de diversas formas que depende do resultado final. Então deixarei duas formas de fazer aqui Essa se ajusta a tela, então é necessário que faça o controle da largura dos elementos usando media-query <style> .pai:after, .pai:before { content: ""; display: table; clear: both } .pai > .filho { display: table-cell; float: left } .filho { width: 33.33333% } </style> <div class="pai"> <div class="filho"> Conteúdo aqui dentro </div> <div class="filho"> Conteúdo aqui dentro </div> <div class="filho"> Conteúdo aqui dentro </div> </div> E dessa que você tem que por obrigação colocar uma largura nos elementos para que eles se alinhem, caso não caibam todos em uma linha eles saltam para a linha de baixo <style> .alinhado { display: inline-block; width: 200px } </style> <div class="alinhado"> Conteúdo aqui </div> <div class="alinhado"> Conteúdo aqui </div> <div class="alinhado"> Conteúdo aqui </div>
  17. Omar~

    [RESOLVIDO] DIV + JS

    Se eu entendi direito acho que é isso mais ou menos algo como isso: document.addEventListener('scroll', function () { console.log(window.pageYOffset); }, false); Mais informações sobre eventos de scroll caso seja necessário: https://developer.mozilla.org/pt-BR/docs/Web/Events/scroll
  18. Bem, queria entender qual é o problema, porque aconteceu para que futuramente possa solucionar então... Dei uma formatada em minha máquina e instalei o ubuntu 18.04.02 64b Fiz a instalação do apache, sql e o phpmyadmin. E então ao tentar acessar o PMA senha inválida mesmo sendo a mesma da instalação... Então a senha do sql também era inválida, mesmo sendo a correta usada durante a instalação. Certo fui pelo terminal e tentei alterar os dados, e nada simplesmente mesmo alterando a senha e reiniciando os serviços a senha sempre era dada como inválida. Pesquisei milhares de alternativas na web e todas não deram certo, simplesmente a senha nunca era válida durante seu uso. Por fim fui ao diretório de instalação do sql e acessei o arquivo de configuração ao qual guarda esse tipo de informação, e surpresa minha não havia a linha de comando de armazenamento da senha. Pois bem como eu já conheço o comando resolvi criar já com uma senha simples "123456" e mesmo assim a senha era inválida na autentificação. Já estava Put@%&# da vida depois de ficar o dia inteiro tentando resolver, então desinstalei tudo apache sql-serve, reiniciei a máquina e instalei o xampp pois esse desde sempre funciona. Mas queria saber o motivo do problema, suspeito que possa ser a própria versão o Ubuntu.
  19. Omar~

    Dar Refresh Só Na Div A Cada X Segundos

    Arquivos necessários: https://github.com/Spell-Master/sm-web/blob/master/scripts/AjaxRequest/AjaxRequest.js https://github.com/Spell-Master/sm-web/blob/master/scripts/AjaxRequest/AjaxRequest.css HTML de como fazer: <div id="exibe"></div> <script> // Inicia a classe Javascript para execução de ajax limpo e corretamente var ajax = new AjaxRequest(); /* * ajax.send('exibe', 'arquivo.html', false) * Requisita um arquivo e o exibe o mesmo em um local expecífico. * Animação no mesmo local onde o arquivo será aberto. * @param {STR} div Elemento#ID onde o arquivo deve ser aberto. * @param {STR} file Arquivo que será aberto. * @param {STR} url (opcional) Quando informado adicionará a string a barra de navegação. */ ajax.send('exibe', 'arquivo.html', false); window.setTimeout(function () { ajax.send('exibe', 'arquivo.html', false); }, 3000); /* 3000 = 3 segundos */ </script> Coloque as infirmações que deseja atualizar dentro do arquivo que será aberto pelo ajax
  20. Omar~

    PHP buscar dados em outra aba do navegador

    Seguindo o que o @Gabriel Heming disse, não dar, pelos motivos já ditos por ele mesmo. Porém dependendo do cenário, é possível enviar informações via GET para uma página ou aquivo. Página A abre a página B em nova aba endereco_da_pagina?informacao_a=forum&informacao_b=imasters Então na página B utilizamos os valores através do PHP <input type="text" value="<?= $_GET['informacao_a'] ?>" /> <input type="text" value="<?= $_GET['informacao_b'] ?>" /> Assim sendo temos um input com o valor de forum e outro com valor imasters No mais sugiro que dê uma lida nisso para abrir nova aba usando o javascript (Se for a questão de usar esse cenário): https://developer.mozilla.org/pt-PT/docs/Web/API/Window/open
  21. Omar~

    Guia JavaScript do mozilla

    Nunca parei para ver, mas exitem muitos conteúdos no github, dê uma conferida para ver https://github.com/mdn/ Sobre material, não recomendo outro para estudo aprofundado, pois aprendi a programar em JS devido a própria documentação do Mozilla. E independente do conteúdo que encontrar, digo a verdade que nenhum é mais simples e completo que a própria documentação do mozilla, ou seja ensinando a programar javascript de forma simples e completa. Sugiro também que dê uma lida nisso: https://www.w3schools.com/js/ Esse é um website que tem diversos exemplos de como usar o javascript nativo de forma simples. Ideal para iniciantes, pois trás o básico do básico em JS com simples funções, muito bom para estudar o conceito básico do JS.
  22. Omar~

    Validar e-mail com preg_match()

    <?php function mailCheck($subject) { if (preg_match('/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{3})$/', $subject)) { return (true); } } var_dump(mailCheck("fulano@fulano.com")); // True O e-mail é valido var_dump(mailCheck("fulano@fulano")); // False O e-mail não é valido var_dump(mailCheck("fulano")); // False O e-mail não é valido var_dump(mailCheck("fulano123@fulano.aaa")); // True O e-mail é valido var_dump(mailCheck("#fulano@fulano.com")); // False O e-mail não é valido var_dump(mailCheck("fulano#fulano.com")); // False O e-mail não é valido /* E por aí vai se não for um e-mail válido sempre não haverá retorno pela função */
  23. Omar~

    URLs Amigáveis - Problema com " / ".

    Na tag <head> antes de tudo coloque isso <base href="url_do_website"> Em exemplo <base href="https://forum.imasters.com.br"> Para facilitar isso e não precisar ficar configurando isso eu criei uma função php que é responsável justamente o obter o endereço url base da aplicação BaseURI.php <?php /** * **************************************************** * @copyright : 2017, Spell Master(c) * @version : 1.0 * **************************************************** * @info : Obtem o diretório base do sistema * **************************************************** */ function BaseURI() { $serve = filter_input_array(INPUT_SERVER, FILTER_DEFAULT); $rootUrl = strlen($serve['DOCUMENT_ROOT']); $fileUrl = substr($serve['SCRIPT_FILENAME'], $rootUrl, -9); if ($fileUrl[0] == '/') { $baseDir = $fileUrl; } else { $baseDir = '/' . $fileUrl; } return ($baseDir); } No index: <?php require ('BaseURI.php'); ?> <html> <head> <base href="<?= BaseURI(); ?>"> <!-- Restante do código html abaixo -->
  24. Omar~

    Como cada cliente editar e castrar seus post por modulo

    Você já escreveu a consulta para mostrar os post do usuário? Com essa consulta aqui ficaria mais fácil explicar. Então se fosse meu caso como eu faria.... - Na tabela de usuário temos uma coluna ID, que acredito que esse valor seja único para cada usuário. Pois bem ao logar esse usuário armazenaria esse valor em uma sessão. - Na tabela de post criaria nova coluna exemplo `postado_por` int(9) Então toda vez que um usuário postar seu conteúdo o id dele fica será gravado nessa coluna - Quando um usuário acessa o conteúdo, apenas verificaria se o ID dele é igual ao valor da coluna que mencionei. Sendo assim ele pode editar/apagar como bem entender. - No caso do admin ele teria uma sessão gravada ao logar que indica que ele é o administrador, então, quando ele acessa o conteúdo verifico se essa sessão existe. Se existir não entra na condição da coluna... Exemplo: <?php $id = isset($_SESSION['id_do_usuário']) ? $_SESSION['id_do_usuário'] : null; $query = "SELECT * FROM tabela"; // verificação dos dados de consulta aqui.... if ($existe_valor) { if (isset($_SESSION['admin'])) { // Pode editar/ apagar pois é o admin } else if ($id && $id == $postado_por) { // Se $id existe e se $id é o mesmo que está na coluna "postado_por" // é porque esse foi o usuário quem postou o conteúdo } else { // Não é o admin nem o usuário que postou } } else { // Não exite nada na tabela }
  25. Sim dar para fazer, deixando de se orientar pelo elemento ID e usando a class do(s) seletor(es). Já que só podemos repetir nome de ID's em uma página (mesmo executando ajax). O problema é em obter os inputs que vão ser preenchidos pós o ajax. Como informar quais são para o javascript? Simples, usando conceito de herança Node, mas para isso eu precisaria do html completo. Como eu não tenho essa informação e mesmo com todo html, um exemplo simples fica difícil de apresentar, além do mais percebi o uso do BS coisa que eu nem meto a mão para mexer. Optei por usar um "DATA-ATTRIBUTE" que lista qual o índice do NodeList que devemos atacar, já que vamos usar class ao invés de ID. Bastando informar esse índice na url para o arquivo. O negócio fica mais complicado pelo fato que cada seletor é criado de forma dinâmica através de um botão assim como percebi pela imagem. Então para que isso funcione a função que cria o input terá que ser responsável por enumerar o valor para usar-mos. (Você pode usar um variável global para isso e a cada adesão a variável se incrementa, e a cada retirada de elemento ela se decrementa. O importante que o primeiro elemento seja sempre 0 "zero") Não sei ao exato de vai dar certo, "na teoria dar" pois como disse para ser preciso só com o html renderizado para orientar o javascript usando o "nextElementSibling" para chegar ao input sem chance de erro. Também temos que modificar como a função será ativada, uma vez que não podemos buscar por um elemento e adicionar evento a ele, se depois do script carregado tem a opção de adicionar mais elementos. (A não ser que reescrevemos a variável que guarda essa informação). Nesse caso optei por disparar a função diretamente em cada seletor através do onchange. Assim sendo quando criar o layout do input adicione os requezitos necessários. Segue o código: O php um pouco modificado pois agora tem uma nova informação e não usa mais um elemento ID e sim o class para achar os inputs No caso eu usei 3 selects que seria a simulação de novos seletores criados. Tomei também a ousadia de salvar o form usando também a classe AjaxRequest, esse foi o resultado dos dados enviados:
×

Important Information

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