По сути, я вызываю страницу (login.php), которая проверяет, проверен ли пользователь и совпадает ли пароль в моем javascript (init.js). Если это так, я отображаю «все хорошо» на странице PHP, которая передается обратно в init.js, где он проверяет, не отображается ли «все хорошо».
Очевидно, что это довольно небезопасно, поэтому я подумывал сделать что-то вроде $ verify_string = md5 (uniqid ($ username)); в файле login.php, но у меня возникают проблемы с выяснением, как передать эту переменную обратно в init.js.
У кого-нибудь есть предложения? Вот что я делаю сейчас:
init.js
$.ajax({
type: "POST",
url: "login.php", // Send the login info to this page
data: str,
success: function(msg){
$(".status").ajaxComplete(function(event, request, settings){
// show 'submit' button
$('.submit').show();
// hide ajax loading gif
$('.ajax-loading').hide();
if(msg == "all-good") { // login ok?
var login_response = '<div id="logged-in">' +
'<img src="img/load-bar.gif">' +
'<br><span style="padding-top: 5px; font-size: .9em;">Logging in...</span>'
'</div>';
$('a.modalCloseImg').hide();
// resize container after processing
$('#simplemodal-container').css("width","auto");
$('#simplemodal-container').css("height","auto");
$(this).html(login_response); // refers to 'status'
// redirect after 2 seconds
setTimeout('go_to_private_page()', 2000);
}
else { // error?
var login_response = msg;
$('.login-response').html(login_response);
}
});
}
});
login.php
// checks the entered pw with the hashed pw in the db
while($row = $stmt->fetch()) {
if (crypt($password, $row['hashed_pw']) == $row['hashed_pw']) {
$_SESSION['username'] = $username;
$_SESSION['user_id'] = $row['user_id'];
$_SESSION['redirect'] = $redirect;
setcookie('username', $username, time()+3600, '/', '', 0, 0);
setcookie('user_id', $row['user_id'], time()+3600, '/', '', 0, 0);
// this is what I want to send back:
$verify_string = md5(uniqid($username));
echo $verify_string;
// this is what is currently being sent back for verification
echo "all-good";
exit();
} else {
$errors[] = "Bad username/password combination. Try again.";
}
}