form. Unfortunately none that i have googled address the two problems
I am having:
My JS Code which is in the head of my login form:
[code]
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/
libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#loginResult").hide();
$("loginForm").submit(function () {
$.post("ajax_logincheck.php", { radusername:$
('[name=radusername]').val(),radpassword:$('#radpasswordfield').val
() },
function(data){
if(data.success){
alert(data.message);
}
process(data);
}, "json");
$("#loginResult").show("slow");
$("#loginForm").hide("slow");
return false;
});
});
</script>
[/code]
My login form:
[code]
<form action="login.php" method="post" name="loginForm">
Form">
<p>username: <input id="radusernamefield" type="text"
name="radusername" /></p>
<p>password: <input id="radpasswordfield" type="text"
name="radpassword" /></p>
<input id="submitButtonLoginForm" type="submit" value="login"
name="submitButtonLoginForm">
<div id="loginResult"></div>
</form>
[/code]
My serverside code in PHP (file "ajax_logincheck.php")
[code]
// mySQL username/password connection code omitted for obvious reasons
$radusername = htmlspecialchars($_POST['radusername'],ENT_QUOTES);
$radpassword = $_POST['radpassword'];
$radpassword=md5($radpassword);
echo '<p>raduser: '.$radusername .' radpass: '.$radpassword.'</p>';
// values are blank in the above output statement
$sqlUserCheck="SELECT * FROM tbl_user WHERE username = '".
$radusername."' LIMIT 1";
echo '<p>'.$sqlUserCheck.'</p>';
$resultUserCheck = mysql_query($sqlUserCheck);
//if username exists
if(mysql_num_rows($resultUserCheck)>0){
$mysqlusernamecheck=mysql_result($resultUserCheck,0,"username");
$mysqlpasswordcheck=mysql_result($resultUserCheck,0,"password");
if ($radusername == $mysqlusernamecheck){
//compare the password
if(strcmp($mysqlpasswordcheck,$radpassword)==0){
//successful login, now set the session from here if needed
$_SESSION['radusername']=$mysqlusernamecheck;
// json data
$data['success']=true;
$data['redirect']= '/dashboard.php';
$data['message'] = "Your info is correct!";
}else{
// failed login due to incorrect info
$data['success'] = false;
$data['message'] = "Your info is wrong...";
}
}else{
print "<strong>Login failed! Please try again.</strong>";
}
}
[/code]
The problems I am having are two:
Problem 1: Unable to pass the username and password to the ajax file
Despite using the .post func in JS I am unable to pass the values of
the username and password to the serverside ajax file:
"ajax_logincheck.php".
You will notce that in my .post() I use two different ways to submit
the parameters: radusername:$('[name=radusername]').val(),radpassword:
$('#radpasswordfield').val() I have tried keeping them the same,
trading them around and nothing seems to work.
Problem 2: Form still submits oldschool even if JS is enabled
I have the form set up so that it still submits for users who don't
have JS enabled browsers.
Problem is, even though I use "return false;" in my $.post() the form
still submits and the page refreshes even though my browser has JS
enabled.
Can someone please give me advise?
thanks
No comments:
Post a Comment