簡體   English   中英

Laravel 登錄表單 - email 不正確

[英]Laravel login form - email is not correct

當我嘗試使用 Laravel 中的表單登錄並保存 session 以重定向到主頁時,我總是收到一條消息,即所需的 email 不正確,即使它是正確的

這是 controller:

public function welcome (Request $request) {
    { 
        $this->validate($request, [

        'mail' => 'required|email',
        'mdp'=> 'required'
    ]);
    $patt= patient::orderBy('created_at','desc')->get() ;
    foreach ($patt as $log ) 
    {
        if (( $log->Login== $request->input('mail') ) && ( $log->Password== $request->input('mdp') ))
        {
            $request->session()->put('log_in', true);
            return redirect('index' , ['helloo'=>$log]);
        }

     return back()->withErrors([
        'message'=> 'Emails or password not correct!'
        ]) ;  }

}

Web.php:

Route::Post('/index' , 'patientcontroller@welcome')->name('rahmaa');

形式:

<form  class="form-signin" method="post" action="{{route('rahmaa')}}"> 
    @csrf  
  <input type="text" class="form-control" name="email" placeholder="Adresse mail" data-rule="email" autofocus="" /> </br>
      <input type="password" class="form-control" name="mdp" placeholder="Mot de passe" data-rule="required"/>      

      <button class="btn btn-primary btn-block" type="submit"> Se connecter </button> <br>
     <center> <a href="inscription"> Inscrivez-vous </a>  </center> 
    </form>

之所以需要收到錯誤郵件,是因為您發送的是 email 而不是郵件。 只需將mail更改為email

$this->validate($request, [
    'email' => 'required|email',
    'mdp'=> 'required'
]);

或將輸入name attribute更改為mail

<input name="mail"/>

重寫你的 function

use Illuminate\Support\Facades\Hash;
....

public function welcome(Request $request)
    {
        $request->validate([
            'email' => 'required|email',
            'mdp' => 'required',
        ]);

        // since email is unique. no need to grab all data
        $patient = patient::where('Login', $request->input('email'))->first();

        // if patient exists
        if ($patient) {

            // check hashed password
            // assuming $patient->Password hashed
            if (Hash::check($request->input('mdp'), $patient->Password)) {
                $request->session()->put('log_in', true);
                return redirect('index', compact('patient'));
            }
        }

        return back()->withErrors([
            'message' => 'Emails or password not correct!',
        ]);
    }

您的 HTML 是<input type="text" class="form-control" name="email" />輸入的名稱是“email”,在 php 中您正在搜索“mail”

'mail' => 'required|email',

它應該是:

<input type="text" class="form-control" name="mail" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM