Вопрос:

просто === совпадение не удалось php

php session

37 просмотра

1 ответ

168 Репутация автора

Я пытаюсь сопоставить пароль ввода пользователя с сохраненным в базе данных. До сих пор все работало отлично, но внезапно начал вести себя странно.

Сценарий начал показывать ошибку неверного идентификатора электронной почты или пароля, несмотря на правильность информации. Обновление окна Сразу после появления ошибки отображается имя пользователя, хранящееся в переменной $ _Session (что означает, что пользователь вошел в систему).

Но как это возможно, когда пользователь не достиг точки, где имя пользователя сохраняется в $ _session.

В любом случае, я пытался сбросить переменную сеанса в начале скрипта, думая, что $ _session не уничтожен полностью (хотя это было так), но это тоже не сработало.

Я уже тестировал использование strcmp в $ check_password === $ row ['password'], но безуспешно. Я также проверил это с операторами "==", но не повезло.

Удивительно, но когда я пытаюсь сделать это на локальном хосте, он работает нормально, но на сервере выдает ошибку, как уже упоминалось.

Я проверил журнал ошибок, но там ничего не было. любая подсказка, что вызывает это?

foreach($result as $row)
{
    $pass = hash('sha256', $_POST['password'] . $row['salt']);
    for($round = 0; $round < 65536; $round++) { $check_password = hash('sha256', $pass . $row['salt']); }

    if($check_password===$row['password'])
    {
        // check if e-mail verification has been done or not
        if(strcmp($row['activation'],"Active")==0)
        {               
            $_SESSION['username'] = $row['username'];

            $response['status'] = 'success';
            $response['message'] = 'Login successful.';
        }
        else
        {
            $response['status'] = 'failure';
            $response['message'] = 'Your Account is Not verified Yet. Kindly verify your account via Login panel Verify Account link.'; 
        }
    }
    else
    {
        $response['status'] = 'failure';
        $response['message'] = 'Invalid Email id or password.';  <--- Error point           
    }
}

Добавление изображения обоих одинаковых паролей. введите описание изображения здесь

Автор: techworld Источник Размещён: 22.08.2016 08:31

Ответы (1)


0 плюса

168 Репутация автора

Я не знаю, был ли это правильный метод для решения этой проблемы, но каким-то образом это помогло.

добавив следующие строки после $response['message'] = 'Login successful.';решения проблемы.

echo json_encode($response);
exit;

Но я до сих пор не могу понять, как 'Invalid Email id or password.'выглядела ошибка, когда оператор был выполнен успешно до сообщения об успешном входе в систему.

Автор: techworld Размещён: 22.08.2016 10:18
Вопросы из категории :
32x32