Wie kann man PHP Luminova Login mit JQuery Ajax funktionieren?Jquery

JQuery-Programmierung
Anonymous
 Wie kann man PHP Luminova Login mit JQuery Ajax funktionieren?

Post by Anonymous »

Ich versuche, eine Login -Seite in PHP Luminova zu erstellen, funktioniert aber nicht gut mit AJAX -Anforderungen. Umleitete die Fehlermeldung nicht auf erfolgreiches Anmeldung oder aktualisiert die Fehlermeldung in das Element "LoginMessage". Genauso wie wenn das Anmeldung erfolgreich ist, wird das Dashboard in der Vorschau angezeigt. Wenn ich die Seite nach dem Anmeldung jedoch neu lade, werde ich zum Dashboard führen. PrettyPrint-Override ">

Code: Select all

use Luminova\Base\BaseController;
use Luminova\Attributes\Prefix;
use Luminova\Attributes\Route;
use Luminova\Security\Crypter;
use App\Models\User;

#[Prefix(pattern: '/api/(:root)', onError: [ViewErrors::class, 'onApiError'])]
class UserController extends BaseController
{
#[Route('/api/login', methods: ['POST'])]
public function userLogin(): int
{
if ($this->request->getBody() === []) {
echo 'Invalid request body';
return STATUS_ERROR;
}elseif($this->app->session->online()){
echo "You are already logged in";
return $this->view('dashboard');
}

$this->validate->rules = [
'email' => 'required|email',
'password' => 'required|min(6)',
];

$this->validate->errors = [
'email' => [
'required' => 'Email must not be empty',
'email' => 'Email address must be a valid email.'
],
'password' => [
'required' => 'Password must not be empty',
'min' => 'Password must not be less than 6 characters'
],
];

if(!$this->validate->validate($this->request->getBody())){
echo $this->validate->getError();
return STATUS_ERROR;
}else{

$password = $this->request->getPost("password");
$email = escape($this->request->getPost("email"));
$user = (new User())->findByEmail($email);

if(!$user){
echo 'Not matching email found.';
return STATUS_ERROR;
}elseif(Crypter::verify($password, $user->user_password_hash)){
$this->app->session->set('name', $user->name);
$this->app->session->set('email', $user->email);
$this->app->session->set('id', $user->id);
$this->app->session->synchronize(ip_address());

return $this->view('dashboard');
}
}

echo 'Invalid email or password provided';
return STATUS_ERROR;
}
}
< /code>
Hier ist mein JavaScript-Login.$('#loginAccountForm').on('submit', function (e) {
e.preventDefault();
$.ajax({
url: '',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
username: $('#username').val(),
password: $('#password').val(),
}),
success: function (response) {
if (response.success) {
window.location.href = '/dashboard';
} else {
$('#loginMessage').html('
' + response.message + '
');
}
}
});
});

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post