Jump to content

Omar~

Members
  • Content count

    578
  • Joined

  • Last visited

  • Days Won

    15

Everything posted by Omar~

  1. 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
  2. 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.
  3. 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
  4. 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
  5. 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.
  6. 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 */
  7. 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 -->
  8. 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 }
  9. 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:
  10. Omar~

    PHP - Criar Editor Texto com textarea

    rsrsrs, Bem aqui está o editor usado por esse fórum. https://ckeditor.com/ckeditor-4/ É só configura-lo da forma que bem desejar obs.: Para configurar + personalização dar quase o mesmo trabalho de criar um editor do zero, porque no fim das contas terá que editar seu js base além de seus plugins.
  11. Utilizei a própria função Javascript que desenvolvi somente para execução de ajax. O link para obter os arquivos estão aqui: https://github.com/Spell-Master/sm-web/tree/master/scripts/AjaxRequest Então, meu exemplo aqui vai ser genérico, mas não diferencia em nada para qualquer estrutura, pois vamos nos orientar por elementos identificadores. Que é o select e os inputs que vão receber os dados. Primeiro o html base com os scripts: Simples não é? Inclusão do css e o js usado pelo ajaxrequest Criamos o grupo seletor "select" e suas opções que são o valor que eu devo passar para o próximo arquivo. Então os dois input's que serão preenchidos com o valor logo após o ajax. Entra o elemento #id onde o arquivo será aberto pelo ajax (É importante que ele fique abaixo dos inputs!) Então no script primeiramente instanciamos a classe js AjaxRequest criando seu objeto que chamei de ajax mesmo. Pego o elemento #ID do seletor e adiciono o evento a ele que vai disparar toda vez que ele for alterado chamando uma função que é responsável por obter o valor e executar o método do ajax. Agora é só irmos ao arquivo php que recebe os dados e usar o php para filtrar o valor recebido, então usar o javascript para preencher os inputs Obs.: O ideal acredito para você é que os inputs sejam ocultos (type="hidden") e que você tenha um div ou span que servirá como um input fake para que algum usuário não o altere. De qualquer forma terá que tratar os dados quando submeter um suposto form, porque mesmo oculto ou desabilitados os inputs podem ser manipulados pelo inspetor do navegador.
  12. Omar~

    Ajuda com XMLHttpRequest

    O terceiro parâmetro quando false indica que a requisição é síncrona. Ou seja, falando de forma mais simples... enquanto não houver resposta levando o tempo que for o resto do código é travado. E isso não é muito legal pois atrapalha a iteratividade do usuário com a página. É sempre aconselhável para boas práticas somente usar requisições assíncronas passando o terceiro parâmetro como true. Mais informações em: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Synchronous_and_Asynchronous_Requests Faça os seguintes testes logo após o xhttp.send(); console.log(xhttp.status); Se a resposta for 404 é porque o endereço url está errado ou não existe. Se a resposta for 500 é porque o endereço que acessou está com erros. Ou não pode se comunicar a sua requisição. Depois modifique o teste para: console.log(xhttp.readyState); Esse teste pode demorar a responder pois vai checar como anda a comunicação do endereço acessado. Enfim, no primeiro teste deve responder como 200 e o segundo como 4. Caso não pode ser que o endereço acessado pode ser protegido pelo servidor de acessos externos, ou o mesmo não recebe parâmetros via GET, até mesmo o que você pode está enviando via get esteja bloqueado de acesso pelo arquivo web_cep.php. Por fim, como você está pegando a resposta da requisição? Isso era uma informação muito importante, pois pode ser que o problema está justamente na forma que você obtêm a resposta da requisição.
  13. Omar~

    Ajuda na sintaxe

    @mauspinola Não sei o motivo que fez com que o programador que desenvolvia a aplicação saísse e não interessa também... A pessoa mais adequada para corrigir essa anomalia é ele próprio. Caso não seja possível o mesmo fazer, aconselho que contrate algum webmaster para está analisando o código entendendo seu comportamento só então aplicar as devidas correções. Pois aqui não temos como saber como é o código para lhe orientar o que fazer. Isso vai contra os objetivos do setor que é orientar como resolver questões. Tente criar um tópico solicitando uma aplicação como você deseja aqui: https://forum.imasters.com.br/forum/87-empregos-e-parcerias/ Mas, o melhor caminho seria você contratar um programador (profissional) caso você não domine o assunto, assim sendo poderá discutir pessoalmente, quaisquer assuntos relacionados a aplicação. Uma vez que isso se trata sobre questões financeiras de sua atividade comercial.
  14. Simples veja... Isso no php apenas pega uma variável em string e adiciona novo conteúdo a ela exemplo: //$var = ""; Comentei só para mostrar a criação da variável vazia. $var = "Isso é uma variável"; $var .= " - Coloquei mais ou pouco de string na var"; var_dump($var); Então temos de saída Isso é uma variável - Coloquei mais ou pouco de string na var Basta que você apenas crie a variável mesmo vazia antes de querer utilizar-la. Quase a mesma coisa vai acontecer se o código chegar até o array $erro que deve ser criado antes de ser usado. Então ao invés disso if (!$error) { Isso: if (count($erro) < 1) {
  15. Remova a propriedade "display: flex" Opte por usar só o width: 100% ou width: 100vw Não se esqueça de fornecer suas coordenadas na horizontal. left: 0 Obs.: a propriedade margin auto não se aplica "não funciona" em elementos de posição absoluta "position: absolute" A barra de rolagem está no body pelo fato de ".footer" ter a propriedade box-shadow que está vazando o tamanho do body que é a largura do footer + a sombra inexistente que colocou no elemento. De toda forma box-shadow não se utiliza da forma que você fez. #EDIT: Me esqueci, quando o footer aparecer a barra de rolagem na vertical é porque seus elementos internos ultrapassam os 50 pixels de altura, pois foi esse o tamanho que especificou a altura do footer.
  16. Sugiro que use algum programa que forneça um servidor apache para teste via localhost Eu uso esse: https://www.apachefriends.org/pt_br/index.html
  17. http://php.net/manual/pt_BR/function.password-hash.php
  18. Omar~

    Manter usuário logado

    Para manter o "login" só se precisa de 1 linha de código de no máximo uns 30 caracteres..... É só usar COOKIE http://php.net/manual/en/function.setcookie.php
  19. Se for passar dados do php para o javascript echo ("<script>funcao_que_usa_dados_do_php('{$dados_do_php}')</script>"); Se for a questão de enviar do JS para o PHP você deve informar por exemplo via GET as informações o javascript para que o servidor tenha acesso a elas. Tenha em mente que o javascript é executado na própria máquina do usuário(NÃO TENDO NADA HAVER COM O SERVER) enquanto que o PHP é executado na máquina que está como servidor. Então para haver comunicação entre ambos ou é por via GET ou é por POST Então, no caso do primeiro exemplo. O servidor renderizará o HTML para o usuário(máquina que acessa) esse usuário então tem o html/javascript que o serve criou.
  20. Omar~

    Sobrecarga de site e banco de dados

    O problema que nesse caso pode causar danos a máquina que está como servidor. Quando um loop não tem fim, criamos o famoso "loop infinito" que trava qualquer sistema exemplo $infinito = 0; while ($infinito != 1) {... CÓDIGO /* DANO A MÁQUINA */ Se eu não especificar que $infinito chegue a 1 o loop será infinito Na minha opinião pelo que entendi isso seria pior que dar um tiro no pé
  21. Dentre essas e outras eu criei essa aplicação que usa Javascript nativo e CSS https://github.com/Spell-Master/sm-web/tree/master/scripts/AjaxRequest <form id="envia_msg" onsubmit="return ajax.form('envia_msg', 'resultado', 'envia_msg.php')"> <input type="text" name="nome" placeholder="Nome..." required> <br /> <input type="text" name="email" placeholder="E-mail..." required> <br> <textarea name="msg" placeholder="Sua Mensagem..." required></textarea> <br /> <button type="submit" >Enviar</button> </form> <p id="resultado"></p> <script> var ajax = new AjaxRequest(); /* Metodo: form(form, div, file) form('ID do formulário', 'ID do elemento que mostra o resultado', 'arquivo que será enviado os dados') */ </script> Enfim, bem melhor que usar jquery.....
  22. Omar~

    Exbir/ocultar checkbox dentro de TD

    Uai tenta então assim (Não sei se dar certo!): tr:hover input[type=checkbox]
  23. Omar~

    Exbir/ocultar checkbox dentro de TD

    Sem o HTML do elemento TABLE fica complicado dar um exemplo coeso. Mas acredito que irei conseguir explicar: Em todo caso vou me basear no meu exemplo mesmo: <style> td.alvo > input { display: none } td.alvo.mostra > input { display: block } </style> <table> <tr class="mouse"> <td>Coloque o cursor por cima</td> <td class="alvo"><input type="checkbox"></td> </tr> <tr class="mouse"> <td>Coloque o cursor por cima B</td> <td class="alvo"><input type="checkbox"></td> </tr> </table> Primeiro temos que buscar o elemento que vai ser o alvo. Então como deu a min entender que são mais de um fazemos um loop e adicionamos um evento para o cursor sobre e quando sai Criamos a função para executar a mágica. E é aqui que o "bixo pega" Nem tanto, como é uma tabela podemos nos orientar pelas células dela. Então no meu exemplo eu tenho um TR > TD | TD Uma linha 2 colunas, sendo a primeira o indice zero da lista e o índice 1 que é a segunda coluna (TD) onde queremos chegar. Então o que você tem que fazer aí é só adaptar para o disign de sua TABLE. Veja o exemplo completo:
  24. Omar~

    escrever mensagem em class name

    Aí depende.... Você quer que todos elementos class no caso "teste" seja escrito alguma coisa, ou só em 1 elemento? Bem assim escreve em todos: var elements = document.getElementsByClassName('teste'); for (var i = 0; i < elements.length; i++) { elements[i].innerHTML = 'O texto ou formatação <div style="font-weight:bold">html</div> que desejar'; //elements[i] += 'Mais alguma coisa'; /* Isso não apaga o que tiver se sim adiciona */ } Assim escreve em apenas um: document.getElementsByClassName('teste')[0].innerHTML = 'bla bla bla'; Nota: - Se for o caso de um único elemento que vai escrever alvo opte pelo #ID ao invés do class obtendo o ele por getElementById. - Quando se busca por elementos class você busca um nodeList que trás um array com todos elementos selecionados por isso usa-se elemento[INDEX] sendo que o index é o índice do alvo. - Quando se vai escrever com javascript você pode escrever uma testrutura HTML com innerHTML ou só um text padrão usando innerText
  25. Omar~

    Duvida com o uso de " e '

    tanto_faz("<alguma_coisa=\"escapar barras\">"); mesmo que dentro de aspas duplas ou simples você pode reutilizar desde-que escape-as usando uma contra-barra(barra invertida)
×

Important Information

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