Функция проверки с возвращаемым значением 0 - PullRequest
0 голосов
/ 29 июня 2018

Я занят школьным проектом, и я сделал функцию, которая проверяет, действителен ли пароль. По какой-то причине он возвращает «0». Понятия не имею почему. Есть кто-нибудь, кто мог бы помочь мне здесь?

Я также сделал функции для проверки почты и имени пользователя, они работают нормально. Заранее спасибо за помощь!

function checkPassword($pass){
    if (strlen($pass) < 6) {
        return "Your password must contain more than 6 characters";
    }
    else {
        if (preg_match('~[0-9]~', $pass)){

            if (preg_match('/^[\p{L}\p{N}_-]+$/u', $pass)) {
                return true;
            }
            else {
                return "Your password contains illegal characters";
            }
        }
        else {
            return "Your password must contain at leas one number";
        }
    }
}

$val3 = checkPassword($_POST['password']);
if ($val3 !== true) {
    $_SESSION["wrongreg"] = $val3; // $val3 = 0, for some reason.
    header('Location: register.php');
}

1 Ответ

0 голосов
/ 29 июня 2018

Как сказал IncredibleHat, он не может вернуть 0. Однако вы на самом деле не показываете, где вы печатаете данные $ _SESSION ["неправильного регистра"]. Вы вместо этого перенаправляете с header (). Единственное объяснение того, почему вы можете сказать, что оно говорит вам, что ответ равен 0, состоит в том, что что-то происходит на странице «register.php», которую вы еще не показывали здесь.

Одна вещь, которую вы могли бы делать на этой странице: strval (intval ($ _ SESSION ["неправильный адрес]]));

Это дало бы нам 0 (но это странная вещь). Более вероятно, что на странице register.php есть какой-то совершенно другой код, который мешает сценарию печатать что-то совершенно иное, чем строка возврата из этой функции пароля.

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