I realize there are lots of tutorials posted on how to make a JQ login
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

Reply via email to