Laravel ialah rangka kerja pembangunan PHP popular yang menyediakan pembangun dengan ciri dan alatan yang kaya untuk memudahkan pembangunan aplikasi web. Pengesahan borang ialah bahagian yang sangat penting dalam Laravel Ia membolehkan pembangun mengesahkan sama ada data yang dimasukkan pada borang adalah sah dan memberikan gesaan yang sepadan apabila ralat ditemui. Walau bagaimanapun, beberapa ralat akan berlaku dalam pengesahan borang Laravel Artikel ini bertujuan untuk memperkenalkan beberapa ralat pengesahan bentuk biasa dan menyediakan penyelesaian yang sepadan.
CSRF (Pemalsuan Permintaan Rentas Tapak, pemalsuan permintaan merentas tapak) ialah kaedah serangan biasa Penyerang memalsukan sumber permintaan untuk dibenarkan Pengguna menghantar beberapa permintaan berniat jahat tanpa mengetahuinya. Token CSRF disediakan dalam Laravel untuk melindungi aplikasi daripada serangan sedemikian. Walau bagaimanapun, apabila borang diserahkan, jika token CSRF tidak betul atau telah tamat tempoh, ralat CSRF akan berlaku.
Penyelesaian:
Tambah token CSRF dalam borang:
<form method="POST" action="/form"> @csrf <input type="text" name="name"> <button type="submit">Submit</button> </form>
Apabila data borang berlaku bukan Ralat pengesahan dicetuskan apabila peraturan pengesahan yang ditentukan dipenuhi. Laravel menyediakan banyak peraturan pengesahan, peraturan biasa seperti required
(diperlukan), email
(format e-mel), dsb. Jika ralat pengesahan tidak dikendalikan dengan betul, pengguna tidak akan dapat menyerahkan borang dengan betul dan menerima gesaan yang berkaitan.
Penyelesaian:
Lakukan pengesahan borang dalam pengawal dan kendalikan ralat pengesahan Kod sampel adalah seperti berikut:
public function store(Request $request) { $validatedData = $request->validate([ 'name' => 'required|max:255', 'email' => 'required|email|unique:users', 'password' => 'required|confirmed|min:8', ]); // Store the user... }
Jika pengesahan gagal, Laravel akan mengubah hala Go secara automatik. ke halaman borang dan dedahkan maklumat ralat pada lapisan paparan. Dalam lapisan paparan, anda boleh mendapatkan dan memaparkan maklumat ralat melalui arahan @error
dan @if
Kod sampel adalah seperti berikut:
<input id="name" type="text" class="@error('name') is-invalid @enderror" name="name" value="{{ old('name') }}" required autocomplete="name" autofocus> @if ($errors->has('name')) <span class="invalid-feedback" role="alert"> <strong>{{ $errors->first('name') }}</strong> </span> @endif
<form method="POST" action="/upload" enctype="multipart/form-data"> @csrf <input type="file" name="photo" accept="image/*"> <button type="submit">Upload</button> </form>
public function upload(Request $request) { $request->validate([ 'photo' => 'required|file|max:1024', ]); $request->file('photo')->store('photos'); return redirect('upload')->with('success', 'Upload successful.'); }
untuk memaparkan mesej ralat muat naik fail: @if
@if ($errors->has('photo')) <div class="alert alert-danger">{{ $errors->first('photo') }}</div> @endif
Atas ialah kandungan terperinci Beberapa ralat bentuk laravel biasa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!