Проблема с PHP: условие else не выполняется - PullRequest
0 голосов
/ 29 июня 2009
function procLogin( $user, $pass, $remember, $hostname, $domainame )
{ 
  global $session, $form;

  $retval = $session->login( $user, $pass, $remember );
  if ( $retval )
  {
    if ( $session->userlevel == 9 )
      if ( $session->isAdmin() ) 
        return ( array( 
          $session->userlevel, $session->userid 
        ) );
  } else { 
    $process = new process( );
    //process->s_Host('domain.com');
    //$process->s_Domain('domain.com');
    $process->s_Host( $hostname );
    $process->s_Domain( $domainname );
    $process->s_processSecure( false );

    $process->s_User( $user );
    $process->s_Pass( $pass );
    // First check we actually have a username and password set inside the process object.
    if ( $process->g_User() && $process->g_Pass() )
    {
      if ( $process->processConn() )
      {
        if ( $process->processBind() )
        {
          return 'google';
        }
      }
    }
  }
}

Моя проблема в том, что если логин ложный, почему он не переходит в другое состояние ...

если я удаляю код внутри части else и помещаю return 'no', он работает .... я просто хочу знать, почему код внутри части else не выполняется

Ответы [ 3 ]

7 голосов
/ 29 июня 2009

$session->login(... должен как-то всегда принимать значение true. Возможно, вам лучше опубликовать код метода входа в систему.

2 голосов
/ 29 июня 2009

Может быть, логин возвращает "false" в виде строки? Он оценивается как истина, потому что он не равен нулю.

1 голос
/ 29 июня 2009

Без конкретной ошибки, подробностей реализации или намека на то, что среда выполнения PHP или встроенная библиотека не работает ...

Это похоже на случай вернуться, проверить, отладить .

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