【问题标题】:Laravel 5.6 session not redirect to viewLaravel 5.6 会话不重定向到视图
【发布时间】:2019-02-09 21:07:53
【问题描述】:

我正在使用 Laravel 5.6 并遇到一些问题。如果在数据库中找到 emailpassword 匹配然后重定向,我想对用户进行身份验证。如果用户存在,则重定向到"user1",否则重定向到"/":还附加了迁移文件

路线

Route::any('/user1','UserProfile@store');
Route::get('/login','StudentController@index');

控制器

public function store(Request $request)
{
    $info = array(
        "Email" => $request->get("email"),
        "password" => $request->get("password")
    );

    $info = DB::table("students")->where($info)->first();

    if(!$info){
        $data = array(
            "user_email" => $info->Email,
            "user_password" => $info->password,
            "user_id" => $info->Student_id
        );

        $request->session()->put($data);
        $request->session()->get('user_email');

        //echo $val=$request->session()->get('user_id');die;
        //  print_r($data);die;

        return redirect('/user1');
    } else {
        return redirect('/');
    }
}

迁移

   public function up()
{
    Schema::create('students', function (Blueprint $table) {

        $table->string('Name');
        $table->string('Student_id');
        $table->string('Email');
        $table->string('Department');
        $table->string('Gender');
        $table->string('password');

        $table->timestamps();
    });
}

This Is Picture of Database Table Students

【问题讨论】:

  • 您的问题全是错字,请edit更正。
  • 我现在会记下这一点,但是将纯文本密码存储在数据库中是一个非常糟糕的主意。当 Laravel 有一个身份验证系统时,尝试创建自己的身份验证系统似乎也倒退了。使用可用的东西来避免安全问题,或安装像 Sentinel (cartalyst.com/manual/sentinel/2.0) 这样的包进行身份验证。

标签: php laravel laravel-5.6


【解决方案1】:

if(!$info) 是向后逻辑;您正在尝试从null 创建$data->first() 将返回stdClass 对象或null,具体取决于它找到的内容,并且该代码仅在$infonull 时才会执行) .

应该是

if($info){
    $data = array(
        "user_email" => $info->Email,
        "user_password" => $info->password,
        "user_id" => $info->Student_id
    );

    $request->session()->put($data);
    $request->session()->get('user_email');

    return redirect('/user1');
} else {
    return redirect('/');
}

【讨论】:

  • 感谢回复>
  • 这只是意味着您的查询正在返回null;您是否输入了正确的电子邮件和密码?密码是否经过哈希处理?应该是email 而不是Emailnull 查询结果的原因有很多。
  • 我使用 dd($data) 来显示数据库中可用的信息
  • public function up() { Schema::create('students', function (Blueprint $table) { $table->string('Name'); $table->string('Student_id' ); $table->string('Email'); $table->string('Department'); $table->string('Gender'); $table->string('password'); $table->时间戳();}); }
  • 抱歉我第一次使用那个平台
猜你喜欢
  • 2014-07-06
  • 2021-11-29
  • 2019-01-29
  • 2019-07-01
  • 2016-08-27
  • 2019-05-19
  • 2013-11-09
  • 2018-11-15
  • 2016-04-10
相关资源
最近更新 更多