Как написать оператор if с двумя условными выражениями? - PullRequest
0 голосов
/ 07 октября 2018

Я работал над формой входа и сеансом.Теперь я получаю эту ошибку:

Ошибка синтаксического разбора: синтаксическая ошибка, неожиданный 'strlen' (T_STRING) в / home / xxx / domains / xxx / public_html/server/include/session.php на линии 130

Это строка ошибки:

if(!$subuser strlen($subuser = trim($subuser)) == 0){

Это целоекод:

function login($subuser, $subpass, $subremember){
    global $database, $form;  //The database and form object
    /* Username error checking */

    $field = "user";  //Use field name for username
    if(!$subuser strlen($subuser = trim($subuser)) == 0){
        $form->setError($field, "* Username not entered");
    }
    else{
        /* Check if username is not alphanumeric */
        if(!eregi("^([0-9a-z])*$", $subuser)){
            $form->setError($field, "* Username not alphanumeric");
        }
    }

Ответы [ 2 ]

0 голосов
/ 07 октября 2018

Вам не нужны две проверки на $subuser в первом выражении - и если вы это сделали, вы должны использовать || для их разделения.

Используйте ctype_alnum() вместо preg_match() для проверки буквенно-цифровых символов.

function login($subuser, $subpass, $subremember){
    global $database, $form;  //The database and form object

    $field = "user";  //Use field name for username
    if (!strlen($subuser = trim($subuser))) {
        $form->setError($field, "* Username not entered");
    //} elseif (!preg_match('/^[\da-z]+$/i', $subuser)) {
    } elseif (!ctype_alnum($subuser)) {
        $form->setError($field, "* Username not alphanumeric");
    }
}
  • логика проектирования в первом условном выражении состоит в том, чтобы обновить значение $subuser, а затем проверить его длину, чтобы второе условное не получило строку сначальные или конечные пробелы.

Вот демонстрация .

0 голосов
/ 07 октября 2018

Эта строка кода недопустима синтаксис:

if(!$subuser strlen($subuser = trim($subuser)) == 0){

Попробуйте изменить его на:

if(!strlen(trim($subuser))) {
...