PHP/Passwortvergleich: Warum kommt immer wieder eine Fehlermeldung?
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.