Jump to content

Jonas Ribeiro Nascimento

Members
  • Content count

    18
  • Joined

  • Last visited

Community Reputation

0 Comum

About Jonas Ribeiro Nascimento

  1. Olá pessoal esse é o erro que tenho quando clico no botão de Login do Google nos navegadores Opera e Edge. O mais estranho que os erros não aparecem no Mozilla e Google Chrome, no Chrome e Mozilla loga de primeira vai normal. function onSignIn(response) { console.log("1"); // Conseguindo as informações do seu usuário: var perfil = response.getBasicProfile(); // Conseguindo o ID do Usuário var userID = perfil.getId(); // Conseguindo o Nome do Usuário var userName = perfil.getName(); // Conseguindo o E-mail do Usuário var userEmail = perfil.getEmail(); if(userEmail != ""){ botaoDeDeslogar(); //aparece o botao de deslogar botaoDeLogar(); //esconde o botao de logar } if(userEmail == ""){ } // Conseguindo a URL da Foto do Perfil var userPicture = perfil.getImageUrl(); //document.getElementById('user-photo').src = userPicture; //document.getElementById('user-name').innerText = userName; //document.getElementById('user-email').innerText = userEmail; // Recebendo o TOKEN que você usará nas demais requisições à API: var LoR = response.getAuthResponse().id_token; console.log("Token: " + LoR); }; $('#google_plus_a').on('click', function (e) { console.log("2"); e.preventDefault(); var auth2 = gapi.auth2.getAuthInstance(); auth2.signOut().then(function () { console.log("3"); console.log('User signed out.'); }); }); Tambem ja tentei assim //--------------------------------------------------------------------------------------------------- // verifica se o usuário está; logado e executa ações // executa ações se o usuário estiver logado /*gapi.load('auth2', function () { console.log("4"); gapi.auth2.init({ client_id: '428001492988-ouocv0d188o1nu3rdhas2dcatahsae1a.apps.googleusercontent.com', }).then(function () { console.log("5"); auth2 = gapi.auth2.getAuthInstance(); console.log(auth2.isSignedIn.get()); // Agora isso sempre retorna corretamente if (auth2.isSignedIn.get() == true) { botaoDeDeslogar(); //aparece o botao de deslogar botaoDeLogar(); //esconde o botao de logar console.log("6"); } else { //usuarioDeslogadoGoogle(); console.log("7"); } }); });*/ //--------------------------------------------------------------------------------------------------------------------------------------------------- //Botao de login do google esta aparencedo display block function botaoDeLogar() { console.log("8"); console.log("Usuário não esta conectado com o Google deseja logalo BT none!"); $('#g-signin2').css('display', 'none'); //Botão de login do google desaparece } function botaoDeLogar2() { console.log("9"); console.log("Usuário não esta conectado com o Google deseja logalo BT block!"); $('#g-signin2').css('display', 'block'); //Botão de login do google aparece } // Botao de sair se o usuario estiver logado esta aparencendo display none function botaoDeDeslogar() { console.log("10"); console.log("O usuário está conectado com o Google deseja desconectalo."); $('#google_plus_a').css('display', 'block'); //Botao de sair aparece } <!-- Infomações do google --> <script src="https://apis.google.com/js/platform.js" async defer></script> <meta name="google-signin-scope" content="profile email"> <meta name="google-signin-client_id" content="428001492988-97ub0g6ijog4n440anrgm706ijg0dqqt.apps.googleusercontent.com"> Erro que aparece no EDGE e no opera quando clico no Botão de " Login do Google " 400. That’s an error. Error: redirect_uri_mismatch The JavaScript origin in the request, https://www.****************.com, does not match the ones authorized for the OAuth client. Visit https://console.developers.google.com/apis/credentials/oauthclient/428001492988-97ub0g6ijog4n440anrgm706ijg0dqqt.apps.googleusercontent.com?project=428001492988 to update the authorized JavaScript origins. Learn more Request Details redirect_uri=storagerelay://https/www.************.com?id=auth604459 response_type=permission id_token scope=email profile openid openid.realm= client_id=428001492988-97ub0g6ijog4n440anrgm706ijg0dqqt.apps.googleusercontent.com ss_domain=https://www.*************.com fetch_basic_profile=true gsiwebsdk=2 That’s all we know. Erro que aparece nos console no Opera e no Edge cb=gapi.loaded_0:103 Uncaught {error: "idpiframe_initialization_failed", details: "Not a valid origin for the client: https://www..…itelist this origin for your project's client ID."} details: "Not a valid origin for the client: https://www.******.com has not been whitelisted for client ID 428001492988-97ub0g6ijog4n440anrgm706ijg0dqqt.apps.googleusercontent.com. Please go to https://console.developers.google.com/ and whitelist this origin for your project's client ID." error: "idpiframe_initialization_failed" __proto__: Object
  2. Estou criando meu próprio mvc php para adquirir mais conhecimento. Mas estou me deparando com uma coisa muita estranha, eu perco a $_SESSION de uma view para outra view Fiz um codigo simples pra testar.a.php ----- view a.php <?php session_start(); $_SESSION['teste'] = 'Funcionou'; echo $_SESSION['teste']; ?> <?php session_start(); echo $_SESSION['teste']; // Notice: Undefined variable: _SESSION in var_dump($_SESSION); // Notice: Undefined variable: _SESSION in NULL ?> <?php namespace Sis\Classes; use App\Model\ClassLogin; use Sis\Traits\TraitGetIp; class ClassSession { private $login; private $timeSession = 1200; private $timeCanary = 300; public function __construct(){ if(session_id() == ''){ ini_set("session.save_handler", "files"); //Cabeçalhos somente atraves de arquivos ini_set("session.use_cookies", 1); //Habilita o uso de cookies ini_set("session.use_only_cookies", 1); //Só pode habilitar a seção atraves de coockies ini_set("session.cookie_domain", DOMAIN); //Só aceita coockies vindo do nosso sistema ini_set("session.cookie_httponly", 1); //Só aceita script php e não deixa o javascript alterar o sistema if(DOMAIN != "localhost"){ ini_set("session.cookie_secure", 1); //Para trabalhar com o SSL do servidor ativo } /*Criptografia das nossas sessions*/ ini_set("session.entropy_length", 512); // ini_set("session.entropy_file","/dev/urandom"); ini_set("session.hash_function", "sha256"); ini_set("session.hash_bits_per_character", 5); session_start(); } $this->login = new ClassLogin(); } #Proteger contra roubo de sessão public function setSessionCanary($par=null){ session_regenerate_id(true); if($par == null){ $_SESSION['canary']=[ "birth" => time(), "IP" => TraitGetIp::getUserIp() //Pega o ip do usuario ]; }else{ $_SESSION['canary']['birth']=time(); } } #Verificar a integridade da sessão public function verifyIdSessions(){ if(!isset($_SESSION['canary'])){ $this->setSessionCanary(); } if($_SESSION['canary']['IP'] !== TraitGetIp::getUserIp()){ $this->destructSessions(); $this->setSessionCanary(); } if($_SESSION['canary']['birth'] < time() - $this->timeCanary){ $this->setSessionCanary("Time"); } } #Setar as sessões do nosso sistema public function setSessions($Email){ $this->verifyIdSessions(); $_SESSION['Login'] = true; $_SESSION['Time'] = time(); $_SESSION['Nome'] = $this->login->getIssetSession($Email)['data']['Nome']; $_SESSION['Email'] = $this->login->getIssetSession($Email)['data']['Email']; $_SESSION['Permissoes'] = $this->login->getIssetSession($Email)['data']['Permissoes']; } #Validar as páginas internas do sistema public function verifyInsideSession(){ $this->verifyIdSessions(); if(!isset($_SESSION['Login']) || !isset($_SESSION['Permissoes']) || !isset($_SESSION['canary'])){ $this->destructSessions(); header("Location: ".DIRPAGE."NaoAutorizado"); }else{ if($_SESSION['Time'] >= time() - $this->timeSession){ $_SESSION['Time']=time(); }else{ $this->destructSessions(); header("Location: ".DIRPAGE."NaoAutorizado"); } } } #Destruir as sessions existentes public function destructSessions(){ foreach (array_keys($_SESSION) as $key) { unset($_SESSION[$key]); } } #testar public function testarSessions(){ echo 'oiiiiiiiiiiiiiiiiiiiiiiooooooooooo'; } }
  3. Tenho esse seguinte problema aparece no console em todas as paginas, somente na pagina de cadastro que não aparece, tipo onde os inputs na tela de cadastro estão sendo usados o erro não aparece. Segue o erro do console em todas as paginas, menos na pagina de cadastro. vanilla-masker.min.js:49 Uncaught Error: VanillaMasker: There is no element to bind. at h (vanilla-masker.min.js:49) at add-javascript.js:6 h @ vanilla-masker.min.js:49 (anonymous) @ add-javascript.js:6 pagina do link add-javascript.js /* global VMasker */ // Mascaras do sistema de cadastro // Mascara do cep VMasker(document.querySelector('#Cep')).maskPattern('99999-999'); // Mascara do cpf VMasker(document.querySelector('#Cpf')).maskPattern('999.999.999-99'); // Mascara do data de nascimento VMasker(document.querySelector('#dataNascimento')).maskPattern('99/99/9999'); // Mascara do telefone fixo e celular function inputHandler(masks, max, event) { var c = event.target; var v = c.value.replace(/\D/g, ''); var m = c.value.length > max ? 1 : 0; VMasker(c).unMask(); VMasker(c).maskPattern(masks[m]); c.value = VMasker.toPattern(v, masks[m]); } var telMask = ['(99) 9999-99999', '(99) 99999-9999']; var tel = document.querySelector('#tel'); VMasker(tel).maskPattern(telMask[0]); tel.addEventListener('input', inputHandler.bind(undefined, telMask, 14), false); pagina do link vanilla-masker.min.js ! function(a, b) { "function" == typeof define && define.amd ? define(b) : a.VMasker = b() }(this, function() { var a = "9", b = "A", c = "S", d = [8, 9, 16, 17, 18, 36, 37, 38, 39, 40, 91, 92, 93], e = function(a) { for (var b = 0, c = d.length; c > b; b++) if (a == d[b]) return !1; return !0 }, f = function(a) { return a = a || {}, a = { precision: a.hasOwnProperty("precision") ? a.precision : 2, separator: a.separator || ",", delimiter: a.delimiter || ".", unit: a.unit && a.unit.replace(/[\s]/g, "") + " " || "", suffixUnit: a.suffixUnit && " " + a.suffixUnit.replace(/[\s]/g, "") || "", zeroCents: a.zeroCents, lastOutput: a.lastOutput }, a.moneyPrecision = a.zeroCents ? 0 : a.precision, a }, g = function(a) { this.elements = a }; g.prototype.unbindElementToMask = function() { for (var a = 0, b = this.elements.length; b > a; a++) this.elements[a].lastOutput = "", this.elements[a].onkeyup = !1, this.elements[a].onkeydown = !1, this.elements[a].value.length && (this.elements[a].value = this.elements[a].value.replace(/\D/g, "")) }, g.prototype.bindElementToMask = function(a) { for (var b = this, c = function(c) { c = c || window.event; var d = c.target || c.srcElement; e(c.keyCode) && setTimeout(function() { b.opts.lastOutput = d.lastOutput, d.value = h[a](d.value, b.opts), d.lastOutput = d.value, d.setSelectionRange && b.opts.suffixUnit && d.setSelectionRange(d.value.length, d.value.length - b.opts.suffixUnit.length) }, 0) }, d = 0, f = this.elements.length; f > d; d++) this.elements[d].lastOutput = "", this.elements[d].onkeyup = c, this.elements[d].value.length && (this.elements[d].value = h[a](this.elements[d].value, this.opts)) }, g.prototype.maskMoney = function(a) { this.opts = f(a), this.bindElementToMask("toMoney") }, g.prototype.maskNumber = function() { this.opts = {}, this.bindElementToMask("toNumber") }, g.prototype.maskPattern = function(a) { this.opts = { pattern: a }, this.bindElementToMask("toPattern") }, g.prototype.unMask = function() { this.unbindElementToMask() }; var h = function(a) { if (!a) throw new Error("VanillaMasker: There is no element to bind."); var b = "length" in a ? a.length ? a : [] : [a]; return new g(b) }; return h.toMoney = function(a, b) { if (b = f(b), b.zeroCents) { b.lastOutput = b.lastOutput || ""; var c = "(" + b.separator + "[0]{0," + b.precision + "})", d = new RegExp(c, "g"), e = a.toString().replace(/[\D]/g, "").length || 0, g = b.lastOutput.toString().replace(/[\D]/g, "").length || 0; a = a.toString().replace(d, ""), g > e && (a = a.slice(0, a.length - 1)) } var h = a.toString().replace(/[\D]/g, ""), i = new RegExp("^(0|\\" + b.delimiter + ")"), j = new RegExp("(\\" + b.separator + ")$"), k = h.substr(0, h.length - b.moneyPrecision), l = k.substr(0, k.length % 3), m = new Array(b.precision + 1).join("0"); k = k.substr(k.length % 3, k.length); for (var n = 0, o = k.length; o > n; n++) n % 3 === 0 && (l += b.delimiter), l += k[n]; if (l = l.replace(i, ""), l = l.length ? l : "0", !b.zeroCents) { var p = h.length - b.precision, q = h.substr(p, b.precision), r = q.length, s = b.precision > r ? b.precision : r; m = (m + q).slice(-s) } var t = b.unit + l + b.separator + m + b.suffixUnit; return t.replace(j, "") }, h.toPattern = function(d, e) { var f, g = "object" == typeof e ? e.pattern : e, h = g.replace(/\W/g, ""), i = g.split(""), j = d.toString().replace(/\W/g, ""), k = j.replace(/\W/g, ""), l = 0, m = i.length; for (f = 0; m > f; f++) { if (l >= j.length) { if (h.length == k.length) return i.join(""); break } i[f] === a && j[l].match(/[0-9]/) || i[f] === b && j[l].match(/[a-zA-Z]/) || i[f] === c && j[l].match(/[0-9a-zA-Z]/) ? i[f] = j[l++] : (i[f] === a || i[f] === b || i[f] === c) && (i = i.slice(0, f)) } return i.join("").substr(0, f) }, h.toNumber = function(a) { return a.toString().replace(/(?!^-)[^0-9]/g, "") }, h }); /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */
  4. Jonas Ribeiro Nascimento

    Mvc Php + Ajax não consigo passar return json_encode para o response do ajax

    Oi Williams descobri o erro eu estava retornando o html da pagina inteira e o ajax esperando o json... Entao criei na minha rotas uma view sem nada somente com returno do json ai deu certo
  5. Ola a todos e agradeço desde já Tenha a classe de validação do form onde pega todos os erros do form: // Validação final do cadastro public function validateFinalCadastro($arrVar) { if(count($this->getErro())>0){ $arrResponse=[ "retorno"=>"erro", "erros"=>$this->getErro() ]; }else{ $arrResponse=[ "retorno"=>"success", "erros"=>null ]; } return json_encode($arrResponse, JSON_UNESCAPED_UNICODE); } Aqui tenho o Controller que passa para view: public function teste() { //echo 'esse é um teste'; $this->recVariaveis(); $validate = new ClassValidate(); $validate->validateFields($_POST); $validate->validateEmail($this->Email); $validate->validateIssetEmail($this->Email); $validate->validateData($this->DataNascimento); $validate->validateCpf($this->Cpf); $validate->validateConfSenha($this->Senha,$this->SenhaConf); $validate->validateStrongSenha($this->Senha); $validate->validateCaptcha($this->gRecaptchaResponse); $validate->validateFinalCadastro($this->arrVar); } Se eu dar um echo, print ou vardump na $validate->validateFinalCadastro($this->arrVar); consigo passar ela pra view e apresentar o erro ...ele apresenta depois do fechamento do html da pagina... {"retorno":"erro","erros":["Email já cadastrado!","Utilize uma senha mais forte!","Sistema de segurança foi ativado! Atualize a página e tente novamente ou aguarde mais um pouco."]} Aqui esta o ajax sem datatype: 'json' Sem datatype: 'json' eu entro no success reponse mais caio no else, porque o response.retorno esta sem o datatype: 'json'. $('#FormCadastroClientes').on('submit', function(event){ event.preventDefault(); var dados=$(this).serialize(); console.log(dados); $.ajax({ url: getRoot()+'CadastroClientes/teste', type: 'post', contentType: "application/x-www-form-urlencoded;charset=UTF-8", data: dados, success: function (response) { $('.retornoCad').empty(); if(response.retorno == 'erro'){ getCaptcha(); $.each(response.erros,function(key,value){ $('.retornoCad').append(value+''); }); }else{ $('.retornoCad').append('Dados inseridos com sucesso!'); } }, error: function (response, jqXHR, request, status, errorThrown, erro) { console.log(response); //alert(dados); console.log(dados); //alert(jqXHR); console.log(jqXHR); //alert(request); console.log(request); //alert(status); console.log(status); //alert(errorThrown); console.log(errorThrown); //alert(erro); console.log(erro); }, complete: function (jqXHR, textStatus) { //colocar aqui algo que deseja que faça ao terminar todo o processo (finnaly) } }); Ajax com datatype: 'json' nao consigo entrar no success ele já cai no erro $('#FormCadastroClientes').on('submit', function(event){ event.preventDefault(); var dados=$(this).serialize(); console.log(dados); $.ajax({ url: getRoot()+'CadastroClientes/teste', type: 'post', dataType: 'json', data: dados, success: function (response) { $('.retornoCad').empty(); if(response.retorno == 'erro'){ getCaptcha(); $.each(response.erros,function(key,value){ $('.retornoCad').append(value+''); }); }else{ $('.retornoCad').append('Dados inseridos com sucesso!'); } }, error: function (response, jqXHR, request, status, errorThrown, erro) { console.log(response); //alert(dados); console.log(dados); //alert(jqXHR); console.log(jqXHR); //alert(request); console.log(request); //alert(status); console.log(status); //alert(errorThrown); console.log(errorThrown); //alert(erro); console.log(erro); }, complete: function (jqXHR, textStatus) { //colocar aqui algo que deseja que faça ao terminar todo o processo (finnaly) } }); Observações: - Consigo inserir no banco tudo ok. - Consigo apresentar o rertun json_encode direto na view - Consigo entrar no success do ajax sem usar datatype: 'json' não entro no if para ler o array mais entro no else. Eu recebo esse erros no console.log No response eu teria que receber o return do json_encode e não recebo. O que eu recebo é o html da view. O ajax esta esperando um retorno em json e nao o html da pagina. parsererror SyntaxError: "JSON.parse: unexpected character at line 1 column 1 of the JSON data" Obrigado a todos.....atecipadamente
  6. Edgard valeu pela dica olha que eu fiz..... $('#QtdParcelas').show().append("<option value='"+obj2.quantity+"-"+NumberParcelas+"'>"+obj2.quantity+" parcelas de "+Number2+"</option>"); Concatenei e separei por traço Depois $qtd_xxx = explode('-', $QtdParcelas_junto_com_valor); $Qtdxxxx = $qtd_xxx[0]; $Valorxxx = $qtd_xxx[1]; Deu certo | : D .....................Abraço....
  7. Oi vou fazer o teste aqui e já posto...valeu pela dica...
  8. Olá Pessoal Como segue na foto o script funciona no firefox....... o problema esta na select não lè cod: $('#QtdParcelas').show().append("<option value="+obj2.quantity+" label="+NumberParcelas+">"+obj2.quantity+" parcelas de "+Number2+"</option>"); Sera que pode ser: Rodapé: <script type="text/javascript" src="https://stc.sandbox.pagseguro.uol.com.br/pagseguro/api/v2/checkout/pagseguro.directpayment.js"></script> <script src="Libraries/Javascript.min.js"></script> </body> </html> ------------------------------------------------------------------ Javascript function getParcelas(Bandeira) { PagSeguroDirectPayment.getInstallments({ amount: Amount, maxInstallmentNoInterest: 2, brand: Bandeira, success: function(response) { $.each(response.installments,function(i,obj){ $.each(obj,function(i2,obj2){ var NumberValue=obj2.installmentAmount; var Number2= "R$ "+ NumberValue.toFixed(2).replace(".",","); var NumberParcelas= NumberValue.toFixed(2); $('#QtdParcelas').show().append("<option value="+obj2.quantity+" label="+NumberParcelas+">"+obj2.quantity+" parcelas de "+Number2+"</option>"); }); }); } }); } //Pegar o valor da parcela $('#QtdParcelas').on('change',function(){ var ValueSelected = document.getElementById('QtdParcelas'); $('#ValorParcelas').val(ValueSelected.options[ValueSelected.selectedIndex].label); });
  9. Amigo deu certo muito obrigado 2 dias sofrendo com isso....o falta de atenção ....obrigado...obrigado....To sem palavras....
  10. Tabela ingredientes(tem preço) e tabela Bolos(vai a qtd de ingredientes) Com join pego o que preciso de cada tabela dinamicamente e multiplico o valor do ingrediente pelo sua grama. Mais o erro é que em cada loop ele soma a linha de baixo com a linha de cima....AFF... Obrigado a todos desde já. <?php $soma = 0; $resultado5=mysqli_query($conectar, "SELECT * FROM bolos_recheados_para_venda "); $linhas5=mysqli_num_rows($resultado5); while($linhas5 = mysqli_fetch_array($resultado5)){ $idx = $linhas5['id']; $nome_do_bolox = $linhas5['nome']; $modelo_do_bolox = $linhas5['modelo_do_bolo']; $tamanho_do_bolox = $linhas5['tamanho_do_bolo']; $resultado6=mysqli_query($conectar, "SELECT ingredientes.nome_ingrediente, ingredientes.preco_ingrediente * bolos_recheados_ingredientes.quantidade AS soma FROM bolos_recheados_ingredientes INNER JOIN ingredientes ON ingredientes.nome_ingrediente = bolos_recheados_ingredientes.ingredientes WHERE bolos_recheados_ingredientes.nome_bolo = '$nome_do_bolox'"); $linhas6=mysqli_num_rows($resultado6); while($linhas6 = mysqli_fetch_array($resultado6)){ $soma += $linhas6['soma']; } ?>
  11. Jonas Ribeiro Nascimento

    ORDER BY não lista a order decrescente

    Motta o sistema estava tudo pronto....somente pra cadastro de clinicas....ate ai tudo ..blz. Depois o cliente quis incluir..pessoa fisica / pessoa juridica - autonomo / pesso juridica - clinicas com varios funcionarios /entre outros .... ai so foi adapitando coisas no que ja estava pronto........rsrsrrs
  12. Jonas Ribeiro Nascimento

    ORDER BY não lista a order decrescente

  13. Jonas Ribeiro Nascimento

    ORDER BY não lista a order decrescente

    Não consigo ordenar .... na foto acima WHERE funcionario = '$nome_fantasia' ORDER BY id DESC ... Não consigo ordenar .... na foto acima WHERE cpf = '$nome_fantasia' ORDER BY id DESC ... Só consigo ordenar assim "SELECT * FROM paciente ORDER BY id DESC" Mais preciso ordenar por funcionario ou cpf
  14. Jonas Ribeiro Nascimento

    ORDER BY não lista a order decrescente

  15. Jonas Ribeiro Nascimento

    ORDER BY não lista a order decrescente

    1° - Sim a CPF....pode receber CPF / NOME FANTASIA / etc 2° - Quero ordenar pelo " id " 3° - ID é tipo INTEIRO auto incremento
×

Important Information

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