Ir para conteúdo

gabrielms

Members
  • Total de itens

    108
  • Registro em

  • Última visita

Tudo que gabrielms postou

  1. gabrielms

    O javascript do meu código não está funcionando

    @mxclxrx Bom não tem nenhum código javascript nessa página
  2. @Rafacharkman Bom, pode seria assim, mas eu não sei se é a melhor opção. echo preg_replace("/^\.\.\/\.\./","http://meusite.com","../../fotos"); Você também pode fazer um que só remova o '../' e depois você adiciona o link do site. $x = preg_replace("/(.\.\/)/","","../documento/../../fotos"); $x = "http://meusite.com/".$x; echo($x);
  3. @gust.php Isso mesmo, eu não coloque nenhum elemento com o id "demo", porque eu não sei como você vai manípular a resposta.
  4. gabrielms

    PHP + Mysql: Agrupar resultados iguais excluindo o final "diferente"

    @Bruno - BuhDesign Você pode usar a palavra-passe INNER JOIR do sql para seleciona registros que possuem valores correspondentes nas duas tabelas. Aqui tem um bom tutorial de como utilizar o INNER JOIR. https://www.w3schools.com/sql/sql_join_inner.asp
  5. gabrielms

    Erro ao conectar o arquivo com o banco de dados

    @bigpoletto Provavelmente ocorreu uma mudança no método de autenticação do usuário, para resolver isso bastar retorna ao padrão Legacy do MYSQL, usando o comando ALTER USER 'usuario'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Sua senha';
  6. gabrielms

    Soma de Números Inteiros

    @Javã JaRLEs O valor do tipo inteiro tem um limite que vai de -2.147.483.648 até 2.147.483.647, para trabalhar com esse numero o php converteu ele para um valor float, porém o valor float tem um limite que vai até 20 dígitos, esse E+22, significa que o numero vai até 22+1 dígitos.
  7. @gust.php Seria algo assim? <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Ajax</title> </head> <body> <form name="formulario"> <select name="motorista"> <option value="01">MOTORISTA 01</option> <option value="02">MOTORISTA 02</option> <option value="03">MOTORISTA 03</option> </select> <br><br> <input name="data" type="date"> </form> <script> var formulario, motorista, data; window.onload = function() { formulario = document.forms["formulario"]; motorista = formulario["motorista"]; data = formulario["data"]; motorista.addEventListener("change", functionAjax); data.addEventListener("change", functionAjax); } function functionAjax() { let d, m; d = data.value; m = motorista.value; d = d.trim(); m = m.trim(); if (d == "") { return false; } if (m == "") { return false; } let xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.responseText; } }; xhttp.open("GET", `/pagina.php?motorias=${d}&data=${m}`, true); xhttp.send(); } </script> </body> </html>
  8. @gust.php Para fazer isso e continuar na mesma página você terá que usar o Ajax, vou deixar um exemplo, mais isso é só um exemplo ele não pode ser usado como base para nada. <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Ajax</title> </head> <body> <form name="data"> <select name="dia"> </select> <select name="mes"> </select> <select name="ano"> </select> </form> <script> var formulario, dia, mes, ano; window.onload = function() { formulario = document.forms["data"]; dia = formulario["dia"]; mes = formulario["mes"]; ano = formulario["ano"]; for(num = 0; num < 32; num++) { var elemento = document.createElement("option"); elemento.setAttribute("value", (num + 1)); elemento.innerHTML = (num + 1); dia.appendChild(elemento); } for(num = 0; num < 12; num++) { var elemento = document.createElement("option"); elemento.setAttribute("value", (num + 1)); elemento.innerHTML = (num + 1); mes.appendChild(elemento); } for(num = 1930; num < 2019; num++) { var elemento = document.createElement("option"); elemento.setAttribute("value", (num + 1)); elemento.innerHTML = (num + 1); ano.appendChild(elemento); } dia.addEventListener("change", functionAjax); mes.addEventListener("change", functionAjax); ano.addEventListener("change", functionAjax); } function functionAjax() { let d, m, a; d = dia.value; m = mes.value; a = ano.value; let xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.responseText; } }; xhttp.open("GET", `/pagina.php?dia=${d}&mes=${m}&ano=${a}`, true); xhttp.send(); } </script> </body> </html>
  9. gabrielms

    Class validator does not exist

    @MarKteus Bom, tem como mostra o log de erro para termos mais informação do problema. O Laravel tem um ótimo manipulador de erro, geralmente bastar você olhar para o log de erro que ele vai apontar o problema para você.
  10. gabrielms

    Busca com vários campos com PHP e MySQL

    @JenneferBarbosa Para fazer isso basta você usar o operador do LIKE do SQL, é bem simples bastar fazer algumas mudanças na sua consulta SQL. Também recomendo o uso do AND a o em vez do OR já que utilizando o operador LIKE com o OR pode ocorrer complicações. Um exemplo do uso do LIKE mais o AND na sua consulta ficaria +- assim $livros = "SELECT * FROM `livro` WHERE `nome` LIKE '".$nome."%' AND `autor` LIKE '".$autor."%' AND `edicao` LIKE '".$edicao."%' ORDER BY `nome` ASC";
  11. gabrielms

    duas tabelas na mesma query

    @Biel. É bem simples, é só coloca um ponto e virgula no final da instrução e repetir o comando de inserir apontando para outra tabela. Exemplo: <?php $sql = mysqli_query($con, " INSERT INTO `tab_aprendiz` (`nome`, `email`) VALUES ('".$nome."', '".$email."'); INSERT INTO `tab_aluno` (`nome`, `email`) VALUES ('".$nome."', '".$email."'); ");
  12. gabrielms

    como logar no banco com senha criptografada

    @ricardonews Atualmente é recomendado usar os métodos password do php, aqui tem a documentação deles https://www.php.net/manual/pt_BR/ref.password.php.
  13. gabrielms

    como logar no banco com senha criptografada

    @ricardonews Quando você faz o cadastro do usuário você tem que salvo a senha criptografada do usuário, assim quando o usuário digitar a senha e você fazer a citografia da senha ela deve bater com a salva no banco de dados. Você nunca deve salva a senha do usuário pura no banco de dados!
  14. gabrielms

    Existe diferenças de login em php e js?

    @ricardonews Você faz A consulta procurando o username, porem você falo que trocou o username pelo nome, mas você utiliza e-mail no formulário é não nome de usuário. Você pode trocar o query de username e-mail $sql_query = "SELECT `username` FROM `usuarios` WHERE `username` = '".$dados[0]."' AND `password` = '".$dados[1]."' LIMIT 1;"; Ficaria assim: $sql_query = "SELECT `email` FROM `usuarios` WHERE `email` = '".$dados[0]."' AND `password` = '".$dados[1]."' LIMIT 1;";
  15. gabrielms

    Existe diferenças de login em php e js?

    @ricardonews Falto o layout também
  16. gabrielms

    Existe diferenças de login em php e js?

    @ricardonews Bom, dessa vez eu criei um formulário para o login, também fiz algumas modificações: No form eu adicionei o action com o endereço do arquivo de login e no evento submit eu adicionei o return false, também no form eu adicionei o fechamento do elemento ul que estava faltando, fora do fonm em cima eu adicionei uma div com o id de resposta, que vai receber todas as mensagem para o usuário. No head eu adicionei uma meta tag com charset uft-8, para podemos usar acentuação sem problemas, e fora do html eu adicionei o <!DOCTYPE html>, assim é possível usar o html 5 sem problemas. <!DOCTYPE html> <html> <head> <title>Login</title> <meta charset="utf-8"> <link href="style.css" rel="stylesheet" type="text/css"> <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script> </head> <body> <div id="resposta"></div> <form id="formulario" action="login.php" method="post" onsubmit="return false"> <ul id="progress"> <fieldset> <h2>Configuracoes da conta</h2> <h3>Area de login </h3> <input type="text" name="email" autocomplete="current-username" placeholder="Email" required> <input type="password" name="senha" autocomplete="current-password" placeholder="Senha" required> <input type="submit" name="next" class="next acao" value="Logar" /> <a href="cadastro.php"><strong>Cadastrar</strong></a> </fieldset> </ul> </form> <script> $(function(){ var formulario = $("#formulario"), resposta = $("#resposta"); formulario.on("submit", function(event){ let dados = formulario.serializeArray(), btnsubmit = formulario.find('input[type=submit]'); dados[0]["value"] = dados[0]["value"].trim(); dados[1]["value"] = dados[1]["value"].trim(); if (dados[0]["value"] == "") { resposta.html('<div class="erros" >O campo "E-mail" está em branco!<div>'); return false; } if (dados[1]["value"] == "") { resposta.html('<div class="erros" >O campo "senha" está em branco!<div>'); return false; } $.ajax({ url: "login.php", method:"POST", dataType: "json", data: dados, beforeSend: function(){ resposta.html('<div class="erros" >Aguarde enquanto finalizamos o login...<div>'); btnsubmit.prop("disabled", true); }, success: function(res){ if (typeof res == "object"){ if (res["status"] == 0){ resposta.html('<div class="ok" >Login efetua do sucesso! <div>'); formulario.html(""); window.location = "painel.php"; } else if(res["status"] == 1) { resposta.html('<div class="erros" >'+res["msg"]+'<div>'); btnsubmit.prop("disabled", true); } else { resposta.html('<div class="erros" >Ocorreu um erro desconhecido no servidor, tente novamente mais tarde.<div>'); btnsubmit.prop("disabled", true); } }else{ resposta.html('<div class="erros" >Ocorreu um erro desconhecido no servidor, tente novamente mais tarde.<div>'); btnsubmit.prop("disabled", true); } }, error: function(){ btnsubmit.prop("disabled", false); resposta.html('<div class="erros" >Ocorreu um erro desconhecido no servidor, tente novamente mais tarde.<div>'); } }); event.preventDefault(); return false; }); }); </script> </body> </html> Nesse página eu uso o Jquery 3.4.1. Para esse formulário de login funcionar corretamente ele espera uma resposta do servidor em formato json contendo um índice 'status' de tipo inteiro e o outro índice 'msg' de tipo string, sendo status 0, login efetuado com sucesso, e status 1 erro, o índice 'msg' só é necessário caso haja um erro de login. O arquivo php ficário assim: <?php sleep(2); function filtroLogin($x){ $x = trim($x); $x = filter_var($x, FILTER_SANITIZE_EMAIL); return($x); } function filtroSenha($x){ $x = md5($x); return $x; } if ($_SERVER["REQUEST_METHOD"] == "POST" and isset($_POST) and count($_POST) == 2){ //require_once "config.php"; $res = array(); $dados = array(); $res["status"] = 0; $res["msg"] = null; $num = 0; foreach ($_POST as $key => $value) { $dados[$num] = $_POST[$key]; $num++; } $dados[0] = filtroLogin($dados[0]); $dados[1] = filtroSenha($dados[1]); if (empty($dados[0])) { $res["status"] = 1; $res["msg"] = "O campo 'E-mail' está em branco!"; } if (empty($dados[1])) { $res["status"] = 1; $res["msg"] = "O campo 'senha' está em branco!"; } if ($res["status"] == 0 and $res["msg"] == null) { $sql_query = "SELECT `username` FROM `usuarios` WHERE `username` = '".$dados[0]."' AND `password` = '".$dados[1]."' LIMIT 1;"; $result = mysqli_query($con,$sql_query); if(mysqli_num_rows($result) > 0){ $_SESSION['uname'] = $dados[0]; $res["status"] = 0; }else{ $res["status"] = 1; $res["msg"] = "Usuário ou senha invalido/s!"; } } echo json_encode($res); }
  17. gabrielms

    Como fazer o while mostrar somente quando houver valor

    @Rzorr Seria algo assim? <?php $texto_1 = "Televisão"; $texto_2 = "Maquina"; if (!empty($texto_1) and !empty($texto_2)) { // Caso os dois valores não estejam em branco, vai escrever o valor na variável $texto_1 echo($texto_1); } else { echo("Caso o valor dá variável esteja vazio ele vai escrever esse texto"); }
  18. gabrielms

    Como fazer o while mostrar somente quando houver valor

    @Rzorr Espera que isso esclareça o que está ocorrendo! <?php function texto() { echo("Isso não é um retorno, e esse método não vai retorna nada, porem como eu estou utilizando o método echo, quando ele for chamado ele vai escrever"); } function texto_2() { return("Esse método vai retorna um valor string"); } if (!empty(texto())) { echo("Esse if não vai funcionar: "); echo(texto()); } echo("<br><br>"); if (!empty(texto_2())) { echo("Esse texto vai funcionar e vai escreer o valor no método text_2: "); echo(texto_2()); }
  19. gabrielms

    Como fazer o while mostrar somente quando houver valor

    @Rzorr Mostra os retornos dos métodos, osc_item_meta_value() e osc_item_meta_name().
  20. gabrielms

    Como fazer o while mostrar somente quando houver valor

    @Rzorr Qual é o retorno do método osc_has_item_meta()? esse método deve retorna apenas valores boleano; e os métodos osc_item_meta_value() e osc_item_meta_name(), qual são os retornos deles? Se os retornos desses dois forem um valor string você pode usar um if com o método empy() com o operador logico ! , e o operador logico and logo apos o método empty(). <?php while (osc_has_item_meta()) { if (!empty(osc_item_meta_value()) and !empty(osc_item_meta_name())) { echo(osc_item_meta_value()); echo(osc_item_meta_name()); } }
  21. gabrielms

    Existe diferenças de login em php e js?

    @ricardonews Esse é só um aviso, não é um erro, ele pede para você informa o atributo autocomplete do input type password. Para permitir que o gerenciador de senhas do usuário digite a senha automaticamente, especifique o atributo autocomplete. Para senhas, o valor dele deve ser geralmente um dos seguintes: "on" Permite que o navegador ou um gerenciador de senhas preencha automaticamente o campo de senha. Esse valor não é tão informativo quanto "current-password" ou "new-password". "off" Não permite que o navegador ou gerenciador de senhas preencha automaticamente o campo de senha. Vale observar que alguns softwares ignoram esse valor, já que ele costuma ser prejudicial para a capacidade dos usuários de manter senhas seguras. "current-password" Permite que o navegador ou gerenciador de senhas preencha automaticamente o campo de senha. Esse valor fornece mais informações do que "on", já que ele permite que o navegador ou gerenciador de senhas digite automaticamente a senha atualmente conhecida do site no campo, mas não que sugira uma nova. "new-password" Permite que o navegador ou gerenciador de senhas digite automaticamente uma nova senha para o site. Esse valor é usado em formulários de "mudar senha" e de "novo usuário", no campo que pede por uma nova senha. A nova senha pode ser gerada de várias maneiras, dependendo do gerenciador de senhas usado. Ele pode simplificar o preenchimento de uma sugestão de nova senha, ou mesmo pode mostrar ao usuário uma interface para criar uma. Se possível coloca o html do formulário de cadastro, você colocou o do painel de login e o javascript do formulário de cadastro, vou deixa um exemplo usando o seu css e html e uma parte do seu código javascript, esse formulário está funcionando sem erros. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <title>Formulario de login </title> <style> *{margin:0; padding:0;} html{ height:100%; background: linear-gradient(rgba(38, 128, 101, 0.9), rgba(52, 177, 140, 0.9)); } .erros, .ok { padding:5px; background:rgba(238, 249, 113, 0.9); margin: 20px auto 0 auto; border: 1px solid rgba(222,239,10,0.9); border-radius: 4px; color: #333; } .ok{background: rgba(155,222,143,0.9);border-color: rgba(68, 171, 50, 0.9);color:white;} body{ font-family: "Trebuchet MS", tahoma, arial; } #formulario{ width:500px; margin:40px auto; text-align:center; position:relative; } #formulario h2, #formulario h3{ font:22px "Trebuchet MS", tahoma, arial; color:#090; width:100%; float:left; text-align:left; margin-bottom:4%; } #formulario h3{color:#333; font-size:17px;} #formulario fieldset{ background:white; border:0 none; border-radius:5px; -moz-border-radius:5px; -webkit-border-radius:5px; box-shadow:0 0 15px 1px rgba(0,0,0, 0.4); padding:20px 30px; box-sizing: border-box; width:80%; margin:0 10%; position:absolute; } #formulario fieldset:not(:first-of-type){ display:none; } #formulario input, #formulario textarea{ padding:10px; border:1px solid rgba(38, 128, 101, 0.9); border-radius:4px; -moz-border-radius:4px; -webkit-border-radius:4px; outline:none; box-sizing: border-box; width:100%; font:14px "Trebuchet MS", tahoma, arial; color:#090; margin-bottom:10px; } #formulario .acao{ width:100px; background:rgba(38, 128, 101, 0.9); color:white; text-transform:uppercase; font-weight:bold; padding:12px 0; float:left; margin-right:5%; } #formulario .acao:hover{background:rgba(52, 177, 140, 0.9); cursor:pointer;} #formulario #progress{ margin-bottom:30px; overflow:hidden; counter-reset: step; } #formulario #progress li{ list-style-type:none; color:white; font-weight:bold; text-transform:uppercase; font-size:10px; float:left; width:33.33%; position:relative; } #formulario #progress li:before{ content: counter(step); counter-increment: step; width:20px; display:block; line-height:20px; background:white; color:#333; border-radius:10px; -moz-border-radius:10px; -webkit-border-radius:10px; margin:0 auto 10px auto; } #formulario #progress li:after{ content: ''; width:100%; background:white; height:2px; position:absolute; top:9px; left:-50%; z-index:-1; } #formulario #progress li:first-child:after{ content:none; } #formulario #progress li.ativo:before, #formulario #progress li.ativo:after{ background:rgba(40, 208, 141, 0.9); color:white; text-shadow:0 1px 0; } </style> </head> <body> <form id="formulario" method="post" onsubmit="return false;"> <label class="resp"></label> <br> <ul id="progress"> <fieldset> <h2>Configuracoes da conta</h2> <h3>Area de login </h3> <input type="text" name="nome" placeholder="Nome" /> <input type="text" name="sobrenome" placeholder="Sobrenome" /> <input type="text" name="email" placeholder="Email" /> <input type="password" name="senha" autocomplete="" placeholder="Senha" /> <input type="password" name="csenha" autocomplete="" placeholder="Senha" /> <input type="text" name="telefone" placeholder="Telefone" /> <input type="text" name="facebook" placeholder="Facebook" /> <input type="text" name="twitter" placeholder="Twitter" /> <input type="text" name="google" placeholder="Google" /> <input type="submit" class="next acao" value="Cadastrar" /> </fieldset> </form> <script> $(function(){ var formulario = $('#formulario'); $('input[type=submit]').click(function(evento){ var array = formulario.serializeArray(); console.log(array); if(array[0].value == '' || array[1].value == '' || array[2].value == '' || array[3].value == '' || array[4].value == ''){ $('.resp').html('<div class ="erros"><p>informe suas informaçoes pessoais para ser efetuado o cadastro</p></div>'); }else{ $.ajax({ type:'post', url:'cadastrar.php', dataType:'json', data: {cadastrar:'sim', campos: array}, beforeSend: function(){ $('.resp').html('<div class="erros"><p>Aguarde enquanto processamos seus dados...</p></div>'); }, success: function(valor){ console.log(valor); if(valor.erro == 'sim'){ $('.resp').html('<div class="erros"><p>'+valor.getErro+'</p></div>'); }else{ $('.resp').html('<div class="ok">'+valor.msg+'</div'); } } }); } evento.preventDefault(); return false; }); }); </script> </body> </html>
  22. gabrielms

    Background

    @chilli2 Criei um script para mudar a cor do background quando uma determinada palavra for digitada: <!DOCTYPE html> <html> <head> <title>Backgroud</title> </head> <body> <script> var palavra = ""; // Nessa Variável vai ficar guardardo tudo o que for digitádo na página var tempo = null; // Nessa Variável vai ficar guardado o método para limpar a variável que guardar os valores digitados var palavrasChaves = { // Nessa array vai ficar a palavra que vai acionar o método que troca a cor dá página e o valor da cor, a palavra chabe deve estar em minuscolo "up":"#00ff32", "down":"#f60404" } window.onload = function(){ // Esse método vai adicionar um event, porem isso só vai ser adicionado quando a página terminar de carregar. window.addEventListener("keyup", function(event){ // Esse é o evento que vai monitorar o evento keyup, assim verificando qual tecla foi precionada palavra += (event.key.length == 1)? event.key : ''; // Aqui eu concateno a tecla precionada a variavel palavra, dessa maneira é possivel verificar se o que o usuário digitou é ou pode ser uma palavra // Antes de fazer a concatenaçãoo eu verifico se a contagem de caracteres correspomdente a tecla clicada é igual a 1, assim eu so aceito os valores alfanumericos e caracteres especiais. palavra.toLocaleLowerCase(); // Aqui eu converto tudo oque foi registrado para minuscolo if (palavrasChaves[palavra]){ // Aqui eu verifico se a palavra digitada forma uma palavra chave que costa no array palavraChave document.getElementsByTagName("body")[0].style.background = palavrasChaves[palavra]; // Aqui eu seleciono o body e aplico no background a cor correspondente a palavra chave } tempo = setTimeout(function(){palavra = ""},10000); // Aqui eu adiciono um temporisado que vai limpar a variável palavra depois de 10 segundo, esse temporisador é reiniciado toda vez que houver um clique }); } </script> </body> </html>
  23. gabrielms

    Existe diferenças de login em php e js?

    @ricardonews Dei uma olhada no seu código e seu problema está no javascript e não no php. Você citou que o formulário e limpo. porem você não colocou nenhum comando para fazer isso! Quando tem algum erro no método javascript que faz a interrupção do evento de submit, ele não consegue interromper o evento, mesmo assim ele executa o submit, e como não tem um action definido no form ele envia o formulário para a mesma página, nessa falha o erro do console é apagado e você não consegue ver o erro. Eu notei um erro na seleção do formulário, você faz a seleção com base no atributo 'name' com o valor 'formulario', porem no formulário que você passo você coloca o id com o valor 'formulario', e não o atributo 'name'. Você seleciona o formulário assim; var formulario = $('form[name=formulario]'); Porem você não colocou o atributo 'name' nele, e sim um atributo id, o código ficaria assim: var formulario = $('#formulario'); Antes de você fazer esse teste, recomendo a você adiciona um comando direto no evento submit direto no form: <form id="formulario" method="post" onsubmit="return false;"> Adicionado uma operação no evento submit que retorna por padrão o valor falso, você vai interromper o evento de submit, de enviar o formulário, com isso você vai poder ler o console de erro e verificar qual é o problema no formulário e no javascript.
  24. gabrielms

    Existe diferenças de login em php e js?

    @ricardonews Se possível, tira um print do Console de log, da Network, da Header da requisição e do Preview, com esses dados é possível que eu verifique o erro.
  25. gabrielms

    Colocar efeito para abrir menu

    @Mensageyro Existe maneira mais fácil de fazer esse menu abrir usando apenas CSS, e também é possível adicionar animação em CSS, porém se você quer uma animação em javascript você pode usar o método toggle(); do Jquery. $(this).toggle("slow"); Ou usar o animate(); do Jquery.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.