1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda: Login com Ajax

Discussão em 'Web Development' iniciada por krxtax, 19 de Março de 2013. (Respostas: 2; Visualizações: 850)

  1. Olá a todos.

    Estou a desenvolver uma página web em que o sistema de login é feito com Ajax e PHP.

    O código é o seguinte:

    Ajax:

    Código:
                    var string = "email=" + email + "&pass=" + pass;
                    $.ajax({
                        type: "POST",
                        url: "signin.php",
                        data: string,
                        beforeSend: function() {
                                $('#div_error').html("Testando ...");
                                $('#div_error').fadeIn('slow');
                                },
                        success: function(data){
                            if(data=="log") {
                                window.location = 'index.php';
                            }
                            else {
                                $('#div_error').html(data);
                                $('#div_error').fadeIn('slow');
                            }
                        }
                    });
    
    PHP:

    Código:
    				$_SESSION['user_email']=$email;
    				$instruc=mysql_query("SELECT * FROM users WHERE email=$email");
    				$id_row=mysql_fetch_array($instruc);
    				$_SESSION['user_id']=$id_row['id'];
    				echo "log";
    

    O problema é que depois de verificar que os dados introduzidos estão corretos, não consigo redirecionar a página.

    Se na página .php no final do código colocar "header('location: index.php')", na página que contém o código Ajax as duas páginas vão-se sobrepor (eu sei que parece um pouco estranho e também nunca tinha visto nada assim).
    Enviando uma palavra qualquer (por exemplo 'log') através do echo, tudo bem. O problema é que no código Ajax a condição que verifica se o texto é igual a 'log' (para nesse caso redirecionar a página) não está a funcionar. Retorna sempre falso e passa à frente. Já experimentei com outras palavras, já tentei em vez de "if(data=='log')" por "if(data==' log')" e nada. O estranho é que se eu fizer um "alert(data)" o que aparece é "log".

    Alguém me poderia ajudar ?

    Obrigado :D
     
  2. fmbp

    fmbp Power Member

    Em vez de:
    tenta:
    Foi o que usei no meu último projecto.
     
  3. OldMan

    OldMan Power Member

    Faz um output desse objecto data (console.log(data)).
    Deves ter uma propriedade chamada responseText ou algo do género que deve ter o teu "log".

    Ou seja, na tua condição deverias ter data.responseText em vez de data.
     

Partilhar esta Página