Ir para conteúdo
Emerson.Oliveira

[Resolvido] Logar com verificação ajax

Recommended Posts

Estou fazendo Test login com ajax, estou aprendendo ajax não manjo quase nada vou postar código

 

O que acontece fica só "verificando ...." não sai do rastro, só estou fazendo teste com esses arquivos os scripts pagina de login.php estão puxando corretamente, e a notificação é com notify

 

 

LOGIN.PHP

 

            <form id="entrar_form" class="form-horizontal m-t-20" method="post">
            <input name="user_login" id="user_login" type="text" >
             <input name="user_senha" id="user_senha" type="password">
             <button  type="submit" id="entrar_btn">ENTRAR</button>
               </form> 
            

        <!-- jQuery  -->
        <script src="jquery.min.js"></script>
        <script src="notifyjs/js/notify.js"></script>
        <script src="notifications/notify-metro.js"></script>
       <script src="entrar.js"></script>

 

ENTRAR.JS

 

 

$(document).ready(function() {

    var btnform = $('#entrar_btn');


    $('#entrar_form').submit(function() {

        $.ajax({
            url: 'app.php',
            method: 'POST',
            data: $('#entrar_form').serialize(),
            beforeSend: function() {
                btnform.attr("disabled", true);
                btnform.html('<i class="fa fa-spin fa-spinner"></i> VERIFICANDO ...');
            },
            success: function(acessar) {
                switch (acessar) {
                    case 'invalid_login':
                        $.Notification.notify(
                            'error',
                            'top right',
                            'LOGIN INEXISTENTE !',
                            'Esse login não está registrado, tente novamente.');

                        btnform.attr("disabled", false);
                        btnform.html('ENTRAR');
                        break;
                    
                }
            }
        });
        return false;
    });

});

 

APP.PHP

 

<?php

        echo "invalid_login";
        exit;

 ?>


 

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 - Retire eventuais caracteres indesejados da sua string. Isso já deve fazer funcionar:

switch ( acessar.trim() ) { //deixe assim..

 

2 - Não conheço essa biblioteca, mas pelo que vi na documentação dela, você deveria tentar algo assim:

$.notify(
    'Esse login não está registrado, tente novamente.',
    {
        position: 'top right',
    }
);

 

  • Obrigado! 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
7 minutos atrás, Emerson.Oliveira disse:

só uma pergunta é seguro usar o ajax dessa forma

Você pretende fazer o procedimento de login usando o JS/AJAX, certo?

Em tese, a segurança é a mesma de fazer o login normalmente (php/form), mas lidando com JS você facilita a presença um leque maior de possíveis brechas de segurança. Não precisa se assustar, mas veja algumas: XSSCSRFCFSClickjacking

 

Da forma como você está trabalhando (apenas lendo o resultado e comparando no switch) não gera problemas, mas certifique-se de:

1 - Seguir princípios defensivos de programação. Isso você consegue estudando e entendendo os ataques.

2 - Utilizar SSL. Fundamental nos dias atuais.

3 - Analise e otimize os cabeçalhos de resposta da aplicação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Matheus Tavares como eu chamo essa função sem chamar em outra pagina tem como

 

tira url: 'app.php'

 

e chamar na mesmo arquivo usando isset(post) unset(quebrar post)

$(document).ready(function() {

    var btnform = $('#entrar_btn');


    $('#entrar_form').submit(function() {

        $.ajax({
            url: 'app.php',
            method: 'POST',
            data: $('#entrar_form').serialize(),
            beforeSend: function() {
                btnform.attr("disabled", true);
                btnform.html('<i class="fa fa-spin fa-spinner"></i> VERIFICANDO ...');
            },
            success: function(acessar) {
                switch (acessar) {
                    case 'invalid_login':
                        $.Notification.notify(
                            'error',
                            'top right',
                            'LOGIN INEXISTENTE !',
                            'Esse login não está registrado, tente novamente.');

                        btnform.attr("disabled", false);
                        btnform.html('ENTRAR');
                        break;
                    
                }
            }
        });
        return false;
    });

});

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Marcos RJ
      Olá pessoal. Tranquilis?
       
      Tenho um sistema onde haverá múltiplos usuários. Cada usuário terá seu próprio subdomínio. Ex.:
      fernandopessoa.sistema.com.br carloschagas.sistema.com.br Para isso criei os subdiretórios no servidor e em cada um deles criei uma regra no .htaccess fazendo o redirecionamento para o sistema que se encontra na pasta raiz. Vejam:
      RewriteEngine on RewriteCond %{HTTP_HOST} ^fernandopessoa.sistema.com.br$ [OR] RewriteCond %{HTTP_HOST} ^www.fernandopessoa.sistema.com.br$ RewriteRule ^(.*)$ http://www.sistema.com.br/acesso/$1 [P] O problema é que quando ele cria esse redirecionamento para o sistema, não consigo identificar quem é o cliente, ou seja, se é o fernandopessoa ou carloschagas, etc.
      Como eu poderia fazer para identificar esse cliente? Não tenho muita experiência com .htaccess, porém tentei algo como:
      RewriteEngine on RewriteCond %{HTTP_HOST} ^fernandopessoa.sistema.com.br$ [OR] RewriteCond %{HTTP_HOST} ^www.fernandopessoa.sistema.com.br$ RewriteRule ^([a-z0-9-]+).sistema.com.br$ http://www.sistema.com.br/acesso?cliente=$1 [P] Mas não funcionou, pois está dando erro 403 (permissão). No PHP posso pegar com o $_REQUEST.
       
      Obrigado
    • Por Adriano Weverton
      Necessito de ajuda em relação a como gerar um pdf pegando imagens do banco de dados utilizando a biblioteca fpdf e se for possível colocar um limite de resolução padrão. De forma que a imagem fique depois da "opc5_quest" ...
       
      $numero = 1; $numero <10; foreach ($dados as $tb_questoes){ if ($numero <10) { $pdf->MultiCell(190, 4, utf8_decode (''.'0'.$numero++.') '.$tb_questoes["enunciado_quest"]), 0, 'L', 0, 0, '', '', true); }else{ $pdf->MultiCell(190, 4, utf8_decode (''.$numero++.') '.$tb_questoes["enunciado_quest"]), 0, 'L', 0, 0, '', '', true); } $pdf->Ln(3); $pdf->MultiCell(190, 4, utf8_decode ('(A) '.$tb_questoes["opc1_quest"]), 0, 'L', 0, 0, '', '', true); $pdf->Ln(3); $pdf->MultiCell(190, 4, utf8_decode ('(B) '.$tb_questoes["opc2_quest"]), 0, 'L', 0, 0, '', '', true); $pdf->Ln(3); $pdf->MultiCell(190, 4, utf8_decode ('(C) '.$tb_questoes["opc3_quest"]), 0, 'L', 0, 0, '', '', true); $pdf->Ln(3); $pdf->MultiCell(190, 4, utf8_decode ('(D) '.$tb_questoes["opc4_quest"]), 0, 'L', 0, 0, '', '', true); $pdf->Ln(3); $pdf->MultiCell(190, 4, utf8_decode ('(E) '.$tb_questoes["opc5_quest"]), 0, 'L', 0, 0, '', '', true); $pdf->Ln(4); }  
    • Por MarceloSan
      Pessoal, estou com um problema.
      Preciso pegar o código do cliente, pra salvar uma foto tirada na webcam em outra tabela, nessa tabela tem as colunas id, código_cliente, image. Consigo salvar o caminho da foto normal, só que precisa salvar o código do cliente, quando eu coloco o código manualmente salva, mas quando eu uso o .$_GET['codigo']. não puxa o código do cliente, não estou conseguindo ver o que há de errado.
      Segue o código abaixo.
       
       
      <?php
          include "../lib/config.inc.php";
          include "../lib/func.inc.php";
          include "../lib/classes.inc.php";
       require_once( dirname( __FILE__ ) . '/connectionClass.php' );
       require_once '../lang/'.$idioma.'.php';
       class webcamClass extends connectionClass{
          
          
          private $imageFolder="webcamImage/";
          
          //This function will create a new name for every image captured using the current data and time.
          private function getNameWithPath(){
              $name = $this->imageFolder.date('YmdHis').".jpg";
              return $name;
          }
          
          
          public function showImage(){
              $file = file_put_contents( $this->getNameWithPath(), file_get_contents('php://input') );
              if(!$file){
                  return "ERROR: Failed to write data to ".$this->getNameWithPath().", check permissions\n";
              }
              else
              {
                  $this->saveImageToDatabase($this->getNameWithPath());         
                  return $this->getNameWithPath();
              }
              
          }
          
         
          public function changeImagetoBase64($image){
              $path = $image;
              $type = pathinfo($path, PATHINFO_EXTENSION);
              $data = file_get_contents($path);
              $base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
              return $base64;
          }
          
          
          public function saveImageToDatabase($imageurl){
              
              $image=$imageurl;
      //        $image=  $this->changeImagetoBase64($image);          
              if($image){
                  $query="Insert into snapshot (codigo_paciente, Image) values('".$_GET['codigo']."', '$image')";
                  //$query="Insert into snapshot (codigo_paciente, Image) values('codigo', '$image')";
                  $result= $this->query($query);
                  if($result){
                      return "Image saved to database";
                  }
                  else{
                      return "Image not saved to database";
                  }
              }
          }
              
      }
    • Por fellipe.arakaki
      Boa tarde, sou novo no php e estou tentando listar os produtos do banco na pagina web que fiz, porém eu ja tentei listar os dados colocando a table dentro da tag <?php> e fora da tag php, e nenhum dos dois jeitos exibe os dados, eu tambem testei a query e quando dei echo no array ele esta imprimindo todos os valores os dados das tabelas bo banco porem nao mostra na tabela, alguem poderia me ajudar com esse problema? Nos dois casos as colunas são exibidas mas os dados não.
      Segue anexo o código da pagina e da query que eu criei:
       
       




    • Por andersonx
      Galera, estou desenvolvendo um sistema, e estou mexendo agora, na parte de recuperação de senha, segui um tutorial que achei bem interessante, no YT, fiz tudo que o cara fez, mas esta aparecendo um erro , na hora de enviar o email, usando um sistema de hospedagem externo, 
       
      Código para recuperação: 
       
      <head>
        <?php 
                date_default_timezone_get("America/Ponta_Pora");
              include "../includes/inc_head.php"; 
              include "../../helpers/conexao.php";  
            
              if(isset($_POST['acao']) && $_POST['']=='recuperar'):
                  $email = strip_tags(filter_input(INPUT_POST,'emailrecupera',FILTER_SANITIZE_STRING));
                  $verificar = mysqli_query($conexao,"SELECT email FROM educadores  WHERE email='$email'");
                  if(mysqli_num_rows($verificar==1)){
                      
                  $codigo = base64_encode($email);
                  $data_expirar= date('Y-m-d H:i:s', strtotime('+ 1 day'));
                  
                  $mensagem='<p>Recebemos uma tentativa de redefiniçao de senha  para esse email, causo não foi voce que enviou,'
                          . ' desconsidere esse email, caso  contrário clique no link abaixo <br /> '
                          . '<a href="nomedosite/recuperar_senha.php?codigo='. $codigo.'  ">Recuperar Senha </a>    </p>';
                  $email_remetente='andersonshipuden@gmail.com';
                  
                  
                  
                          $headers = "MINE-Version: 1.1\n";
                          $headers .= "Content-type: text/html; charset-iso-8859-1\n";
                          $headers .= "From: $email_remetente\n";
                          $headers .= "Return-Path: $email_remetente\n";
                          $headers .= "Reply-To: $email\n";
                          $inserir= mysqli_query($conexao,"INSERT INTO codigos  SET codigo='$codigo', data='$data_expirar'");
                         if($inserir){
                           if (mail("$email", "Assunto", "$mensagem", $headers, "-f$email_remetente")){
                            echo 'Enviamos um email com um link para a recuperaçao de senha para o endereço de e-mail, que enviou';
                            
                        
                             
                         }                    
                       }
                  
                  }
                  
                
                 
               
                  
                  endif;
              
         /*$headers = "MINE-Version: 1.1\n";
         $headers .= "Content-type: text/plain; charset-iso-8859-1\n";
         $headers .= "From: $email_remetente\n";
         $headers .= "Return-Path: $email_remetente\n";
         $headers .= "Reply-To: $email_usuario\n";
         mail("$email_usuario", "Assunto", "$mensagem", $headers, "-f$email_remetente");
         
              */
              
              ?>
         
             
             
              
              
              
             
      </head>
      <body  >
        <div class="container-fluid">
                  <?php include "../includes/inc_nav.php"; ?>
              </div>
          
         
          
          <div class="form-horizontal" id="img" >
            <div class="row">
                  
                   
                     
                       
                       <center>    <h4 id="tit"><strong>Recuperar Senha</strong></h4> </center>
                     
                       <form id="f"  class="form-horizontal" method="POST" enctype="multipart/form-data">
                    
                           
                          <img src="../img/logo.png" id="fff">
                         <br>
                         <br>
                         <br>
                          <br>
                           <br>
                         <br>
                         <center>    <h6 id="recs"><strong>Para recuperar sua  Senha inseira o seu Email Cadastrado!</strong></h6> </center>
                         <br>
               
                         
                        <div class="control-group">
                          <label class="control-label">Email:</label>
                          <div class="controls glyphicon glyphicon-envelope" >
                              <input type="text" name="emailrecupera" value="" class="form-control"  placeholder="Email" required>
                              <input type="hidden" name="acao" value="recuperar" class="form-control" required>
                               
                          </div>
                        </div>
                     
                     
                        <div class="control-group">
                          <div class="controls">
                              <button type="submit"  value="recuperar Senha" id="submit" class="btn-success" >Enviar</button>
                          </div>
                            <br>
                            <div class="controls" >
                                      <button type="reset"  id="reset" class="btn-warning">Limpar Campos</button>
                          </div>
                          
                        </div>
                           <br>
                         <br>
                         <br>
                          <p class="aligncenter margintop500" id="registrar" >
                            Nao Possui uma  conta? <a href="registrar.php"  aria-hidden="true" >Registre-se</a>
                          </p>
                          
                      </form>
                    </div>  
          </div>
       
      ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      Essa é a segunda tela, quando ele clicar no codigo enviado por email par aele
      <head>
       

        <?php 
               
              include "../includes/inc_head.php"; 
              include "../../helpers/conexao.php";        
              
               if(isset($_GET['codigo'])){
                   $codigo= $_GET['codigo'];
                   $email_codigo= base64_decode($codigo);
                   $selecionar = mysqli_query($conexao,"SELECT * FROM codigos WHERE codigo = '$codigo' AND  data > NOW()");
                   if(mysqli_num_rows($selecionar)>=1){
                       if(isset($_POST['acao']) && $_POST['acao']=='mudar'){
                           $nova_senha= $_POST['novasenha'];
                           $atualizar= mysqli_query($conexao,"UPDATE educadores SET senha ='$nova_senha' WHERE email='$email_codigo'");
                           if($atualizar){
                               $mudar= mysqli_query($conexao,"DELET FROM codigos WHERE codigo='$codigo'");
                                    
                               echo 'Sua senha foi modificada com sucesso';
                           }
                       }
             ?>
          
          <div class="row">
                  
                   
                     
                       
                       <center>    <h4 id="tit"><strong>Por Favor, insira a sua  nova senha:</strong></h4> </center>
                       <form id="f"  class="form-horizontal" method="POST" enctype="multipart/form-data">
                    
                           
                          <img src="../img/logo.png" id="fff">
                         <br>
                         <br>
                         <br>
                          <br>
                           <br>
                         <br>
                         <center>    <h6 id="recs"><strong>Para atualizar sua  Senha insira sua nova senha no campo abaixo!</strong></h6> </center>
                         <br>
               
                        <div class="control-group">
                          <label class="control-label">Nova Senha:</label>
                          <div class="controls glyphicon glyphicon-envelope" >
                              <input type="password" name="novasenha" value="" class="form-control"  placeholder="Nova Senha" required>
                              <input type="hidden" name="acao" value="mudar" class="form-control" required>
                               
                          </div>
                        </div>
                     
                     
                        <div class="control-group">
                          <div class="controls">
                              <button type="submit"  value="Mudar Senha" id="submit" class="btn-success" >Salvar Senha</button>
                          </div>
                            <br>
                            <div class="controls" >
                                      <button type="reset"  id="reset" class="btn-warning">Limpar Campos</button>
                          </div>
                          
                        </div>
                           <br>
                         <br>
                         <br>
                          
                      </form>
                    </div>  
          
          
          
          <?php 
                       
                   }else {
                       echo 'Desculpe mais esse link já expirou';
                       
                   }
                   
               }
                  
                ?>  
        
              
         Esta dando um erro, na seguinte linha :    if(mysqli_num_rows($verificar==1))
       
      esse erro: 
       
      Notice: Object of class mysqli_result could not be converted to int in /storage/ssd4/199/6565199/public_html/EducAtiv/view/home/recuperarSenha.php on line 14

      Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /storage/ssd4/199/6565199/public_html/EducAtiv/view/home/recuperarSenha.php on line 14
       
             
             
              
          
×

Informação importante

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