Hallo!
Ich will ein Passwort, das eingegeben wird, vergleichen. Doch es kommt immer wieder diese Fehlermeldung:
Eingegebenes Passwort: n1234
admin:238 Benutzername: nadine
admin:242 Uncaught ReferenceError: form is not defined
at validatePassword (admin:242:18)
at HTMLButtonElement.onclick (admin:161:100)
Der Code im AdminController sieht so aus:
public function validatePassword(Request $request, $userName) {
try {
$password = $request->input('password');
// Benutzer anhand des Benutzernamens finden
$user = User::where('username', $userName)->first();
// Debugging-Informationen in das Log schreiben
\Log::info('Benutzername: ' . $userName);
\Log::info('Benutzer gefunden: ' . ($user ? 'Ja' : 'Nein'));
if (!$user) {
return response()->json(['valid' => false, 'message' => 'Benutzer nicht gefunden']);
}
// Überprüfen, ob das gespeicherte Passwort im Bcrypt-Format ist
$passwordInfo = password_get_info($user->password);
\Log::info('Passwort-Algorithmus: ' . $passwordInfo['algoName']);
if ($passwordInfo['algoName'] !== 'bcrypt') {
return response()->json(['valid' => false, 'message' => 'Das gespeicherte Passwort verwendet nicht den Bcrypt-Algorithmus.']);
}
// Passwortüberprüfung
$passwordCheck = Hash::check($password, $user->password);
\Log::info('Passwort korrekt: ' . ($passwordCheck ? 'Ja' : 'Nein'));
if ($passwordCheck) {
return response()->json(['valid' => true]);
}
else {
return response()->json(['valid' => false, 'message' => 'Ungültiges Passwort']);
}
}
catch (\Exception $e) {
\Log::error('Fehler bei der Passwortvalidierung: ' . $e->getMessage());
return response()->json(['valid' => false, 'message' => 'Serverfehler. Bitte versuchen Sie es später erneut.'], 500);
}
}
Und im admin blade so:
function showPasswordModal(route, userName) {
console.log('showPasswordModal() wurde aufgerufen mit Route:', route);
$('#passwordModal').modal('show');
$('#passwordForm').attr('action', route); // Setze die Aktion des Passwort-Formulars auf die gewählte Route
$('#passwordForm').data('userName', userName);
console.log(userName);
}
function validatePassword() {
console.log('validatePassword() wurde aufgerufen');
var enteredPassword = document.getElementById('passwordInput').value;
var userName = $('#passwordForm').data('userName');
console.log('Eingegebenes Passwort:', enteredPassword);
console.log('Benutzername:', userName);
$.ajax({
type: 'POST',
url: form.action,//$('#passwordForm').attr('action'), // Stellen Sie sicher, dass dies die richtige Route ist
data: {
'_token': '{{ csrf_token() }}',
'password': enteredPassword
},
success: function(response) {
console.log('Server-Antwort:', response);
if (response.valid) {
$('#payForm').submit();
}
else {
alert(response.message || 'Falsches Passwort! Bitte versuche es erneut.');
}
},
error: function(xhr, status, error) {
console.error('AJAX-Fehler:', error);
alert('Fehler beim Validieren des Passworts. Bitte versuche es später erneut.');
}
});
Warum kommt immer wieder eine Fehlermeldung? Ich habe schon alles probiert und das schon seit Stunden! Danke.