I’ve never done this before, and I haven’t found much help on Google or StackOverflow yet.
Here’s what I have: A password input:
<input type="text" placeholder="password" name="pass" id="password" />
and some jQuery to check the password:
<script>
$('form').submit(function(){
input = $('#password').val();
var finish = $.post("pass.php", { request: "opensesame" }, function(data) {
return (input==data) ? true : false;
});
if(finish){
alert('sent');
}else{
alert('not sent');
}
return false;
});
</script>
And a password-dispensing php page (pass.php):
<?php
if(isset($_POST['request'])&&$_POST['request']=="opensesame"){
echo 'graphics';
}
?>
Now, I can get it to alert ‘graphics’, but I can’t get it to match the data with the input value to check if it’s the right password or not.
What am I doing wrong, and what are the potential dangers to authenticating a password in this way?
The first thing to do would be to clean up the code, it’s too obscure, I’m afraid.
I’d write it as follows:
Things to note here:
And on the server:
Things to note here:
isset()to check for the existence of the variable, good call. Keep doing it.'true'or'false', this translates to a boolean value in javascript.I would advise returning an object with error details, such as the one below: