Hi,
I have a very simple jQuery/ajax script for a membership driven website. The script just checks to see if the user entered info, validates it against my database and returns 1 for a failed login attempt, and 0 if the username/password match.
The function works perfectly when I run it w/o calling it from ajax.
Firefox: everything works.
Chrome/Safari: The query is locking everything up. When I enter valid info, there isn't even any record of a request going out (in the developer tools chrome/safari supply). When invalid info is entered the request is going out and it returns 3.
I'm pretty baffled by this.
Is it a "sandbox" issue? as I understand it Firefox and Chrome/safari handle XHR differently... Although don't ask me how.
I am running a base install of MAMP. Could this be something on my developer environment? (I will be testing it on a live server later this afternoon)
Here is my AJAX call and the php script it is calling.
AJAX:
$.ajax({
//I've also tried..
//url: '_modules/php/session.php',
url: 'http://localhost/current/100TradeJack/httpdocs/_modules/php/session.php',
type: 'POST',
cache: false,
timeout: 5000,
data: "method=login&"+$('#loginTop').serialize(),
error: function(XMLHttpRequest, ajaxOptions, thrownError)
{
alert("ERORR!!");
},
success: function(response){
alert(response);
if(response == '0'){
alert("log user in");
window.location.replace("http://localhost/current/100TradeJack/httpdocs/trading.php");
} else if(response == '1') {
alert("invalid username/password");
} else {
alert("ERRROOR!");
}
}
});
session.php:
if($_POST['method'] == 'login'){
$validated = login($_POST['email'], $_POST['password']);
echo $validated;
}
fucntion login($email, $password){
$connection = mysql_connect("localhost","root","root") or die(mysql_error());
mysql_select_db("sandbox_members", $connection) or die(mysql_error());
if($email){
$email = mysql_real_escape_string($email);
} else {
return 1;
}
if($password){
$password = mysql_real_escape_string($password);
} else {
return 1;
}
$query = "SELECT * FROM users WHERE username='". $email . "' AND password='". $password ."'";
$result = mysql_query($query);
if($row = mysql_fetch_array($result)){
return 0;
} else {
return 3;
}
//if it gets to here the username/password combo was incorrect or was not found in the db
return 1;
mysql_close($connection);
}