Ajuda: Login com Ajax

krxtax

Membro
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
 
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.
 
Back
Topo