为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕丝7291255 2023-04-21 13:22:53
当我尝试在 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!'        ]) ;  }}网站.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>
查看完整描述

2 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

您收到错误邮件的原因是必需的,因为您发送的是电子邮件而不是邮件。只是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!',

        ]);

    }


查看完整回答
反对 回复 2023-04-21
?
三国纷争

TA贡献1804条经验 获得超7个赞

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

'mail' => 'required|email',

它应该是:

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


查看完整回答
反对 回复 2023-04-21
  • 2 回答
  • 0 关注
  • 117 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信