код из вижета не выводит хелло ворлд PHP: $submiti = filter_input(INPUT_POST, 'submiti'); if (isset($submiti)) { $logini = filter_input(INPUT_POST, 'login'); $passwordi = filter_input(INPUT_POST, 'password'); if ($logini and $passwordi) { global $mod; $model = new Users(); $mod = $model::find()->where(['user_login' => $logini])->one(); if ($mod) { $pass = $mod->user_password; } else { $pass = generateCode(15); } $a=md5(md5($passwordi)); $a=(string)$a; $pass=(string)$pass; echo "1:$a and 2:$pass"; echo "1:".gettype($a)."2:".gettype($pass); if($a==$pass){ echo 'hello world'; } } }
А почему так странно работаешь с вводом, если у тебя Yii? Есть же специализированные средства Yii2 для работы с пользовательскими данными. И для хеширования пароля тоже есть готовые функции в Yii2, не надо самодеятельности с двойным md5, Ну а так тебе сказали, отлаживай свой бред. Находится ли модель, правильно ли ты записал предварительно пароль в базу и т.п.
Насчёт сравнения, $a и $pass равны другие другу, насчёт модели все правильно работает(я новичок и не знаю как в без виджетов сделать так чтобы yii sidebar left на каждой странице форму авторизации показывал)
Ну если они равны друг другу, то должен срабатывать соответствующий if, тем более у тебя там вообще нестрогое сравнение (которое, кстати, нельзя применять при сравнении хешей, хеши сравниваются только ===) Показывать в виджете - это правильно, обрабатывать в видежете POST-запрос - в корне неверно. Для этого нужен контроллер, который проведёт аутентификацию и сделает редирект. Или ты не в курсе схемы обработки POST-запросов: Форма посылает POST-запрос PHP-код на него реагирует, делает необходимое действие - добавляет запись в базу или проводит аутентификацию (т.е. записывает в куку или сессиию флаг авторизации) После чего, не выводя никакой информации, в обязательном порядке следует редирект, даже на ту же страницу, но обязательно редирект. Исключение - AJAX-запросы