В моем проекте, если и еще или иначе, если условие не работает, что я могу сделать для этого? - PullRequest
0 голосов
/ 25 сентября 2019
if (Registration::where(['email', '=', $email, 'password', '=', $pwd, 'is admin', '=', 1]))
{
    Session()->put('admin email', $email);

    return redirect('admin');
}
else
{
    if (Registration::where(['email', '=', Input::get('email'), 'password', '=', Input::get('password'), 'is admin', '=', 0]))
    {
        Session()->put('email', $email);

        return redirect('/');
    }
}

Любой незарегистрированный пользователь может войти в систему и не проверять, если и еще, если условие сначала, если может работать, если я могу изменить этот перенаправленный путь, то он пойдет по этому пути

1 Ответ

1 голос
/ 25 сентября 2019

Для начала ваши предложения where выглядят немного странно.Попробуйте применить их так:

    $condition1 = Registration::where([
        ['email', '=', $email],
        ['password', '=', $pwd],
        ['is admin', '=', 1],
    ])->count();

    $condition2 = Registration::where([
        ['email', '=', Input::get('email')],
        ['password', '=', Input::get('password')],
        ['is admin', '=', 0],
    ])->count();

    if ($condition1)
    {
        Session()->put('admin email', $email);

        return redirect('admin');
    }
    else
    {
        if ($condition2)
        {
            Session()->put('email', $email);

            return redirect('/');
        }
    }

Вы также можете сделать это:

    $condition1 = Registration
        ::where('email', '=', $email)
        ->where('password', '=', $pwd)
        ->where('is admin', '=', 1)
        ->count();

    $condition2 = Registration
        ::where('email', '=', Input::get('email'))
        ->where('password', '=', Input::get('password'))
        ->where('is admin', '=', 0)
        ->count();

    // ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...