Как проверить длину переменных


У меня есть форма входа, которая отправляет пользователя и ключ который обрабатывается с помощью этого кода:

<?php
    if (($_SERVER['REQUEST_METHOD'] == 'POST') && ($_POST['action'] === 'login')) {
        if (isset($_POST['usuario']) && isset($_POST['clave'])) {

            $usuariodao = new UsuarioDAO();
            $user = $usuariodao->login($$_POST['usuario'], $$_POST['clave']);

            if($user->getUsuario()) {
                header('Location: principal.php');
                exit;
            } else {
                $tpl = new Plantilla();
                $tpl->assign('errorLogin', 'Usuario y/o Clave incorrectos');
                $tpl->display('index.tpl.php');
                exit;
            }
        } else {
            $tpl = new Plantilla();
            $tpl->assign('errorLogin', 'Acceso no Autorizado');
            $tpl->display('index.tpl.php');
            exit;
        }
    } else {
        $tpl = new Plantilla();
        $tpl->assign('errorLogin', 'Acceso no Permitido');
        $tpl->display('index.tpl.php');
        exit;
    }
?>

Как я могу проверить, что поля пользователь и ключ не имеют длины более 10 символов? И можно ли упростить первые два условных if.

 1
php
Author: Puntay, 2018-04-29

2 answers

Согласно документации PHP Вы можете проверить длину строк, выполнив us функцииint strlen(string).

Получает целое число, которое возвращает длину string.

Так что если

$Usuario = 'Manolo';

if(strlen($Usuario) > 10)
{
    //El usuario no es valido
}

    <?php
    if (($_SERVER['REQUEST_METHOD'] == 'POST') && ($_POST['action'] === 'login')) {
        if (isset($_POST['usuario']) && isset($_POST['clave'])) {

            if(strlen($_POST['usuario']) > 15 && strlen($_POST['clave']) > 15)
            {
                //Error
            }
            else
            {
              // Proceso de logueo

            $usuariodao = new UsuarioDAO();
            $user = $usuariodao->login($$_POST['usuario'], $$_POST['clave']);

            if($user->getUsuario()) {
                header('Location: principal.php');
                exit;
            } else {
                $tpl = new Plantilla();
                $tpl->assign('errorLogin', 'Usuario y/o Clave incorrectos');
                $tpl->display('index.tpl.php');
                exit;
            }
        } else {
            $tpl = new Plantilla();
            $tpl->assign('errorLogin', 'Acceso no Autorizado');
            $tpl->display('index.tpl.php');
            exit;
        }
    } else {
        $tpl = new Plantilla();
        $tpl->assign('errorLogin', 'Acceso no Permitido');
        $tpl->display('index.tpl.php');
        exit;
    }
   }}}
?>
 1
Author: Héctor Manuel Martinez Durán, 2018-04-29 05:46:44

Вы можете создать другой метод Пример:

function countLong($var, $max)
{
  if(strlen($var) >$max){
    return strlen($var) . " > " . $max;
  }
  return strlen($var) . "< " . $max ;
}

echo countLong("usuario", 5);

Удачи

 1
Author: outman, 2018-04-29 13:15:25