Laravel登录表单-电子邮件不正确

问题描述 投票:0回答:2

[当我尝试使用Laravel中的表单登录并保存会话以在主页中重定向时,我总是收到一条消息,即使所需的电子邮件是正确的,它也不正确

这是控制器:

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>
php laravel forms session
2个回答
2
投票

收到错误邮件的原因是必需的,因为您发送的是电子邮件而不是邮件。只需将mail更改为email

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

或将输入name attribute更改为mail

<input name="mail"/>

重写您的功能

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!',
        ]);
    }

1
投票

您的HTML为<input type="text" class="form-control" name="email" />输入的名称是“电子邮件”,在php中搜索“邮件”

'mail' => 'required|email',

应该是:

<input type="text" class="form-control" name="mail" />
© www.soinside.com 2019 - 2024. All rights reserved.