Actualmente tengo un formulario de inicio de sesión estándar como este:
<?php
if( isset( $_POST['username], $_POST['password'] ) ) {
// escape both strings and compare them to database
}
?>
<form action="" method="post">
<input type='text' value='username' name='username'></input>
<input type='password' value='password' name='password'></input>
<input type='submit' value='submit'></input>
</form>
Quiero moverme a AJAX, para que la nueva página no se actualice. Este es mi nuevo método:
<script>
function login_ajax() {
var formdata = new FormData();
var ajax = new XMLHttpRequest();
formdata.append('username', document.getElementById('username').value;
formdata.append('password', document.getElementById('password').value;
ajax.open( "POST", "https://my-website.com/login_validation.php" );
ajax.onreadystatechange = function() {
if(ajax.readyState == 4 && ajax.status == 200) {
// do something
}
}
ajax.send( formdata );
}
</script>
?>
<form action="" method="post" onsubmit='login_ajax(); return false;'>
<input type='text' value='username' id='username'></input>
<input type='password' value='password' id='password'></input>
<input type='submit' value='submit'></input>
</form>
Y mi login_validation.php
se ve así:
<?php
if( isset ( $_POST['username'], $_POST['password'] ) ) {
// escape strings compare to database and sign on
}
¿Es el segundo método menos seguro que el primero?