Перейти к содержимому

Фотография

TestLink 2.0 (Dashio)


  • Авторизуйтесь для ответа в теме
В этой теме нет ответов

#1 Starley25

Starley25

    Новый участник

  • Members
  • Pip
  • 8 сообщений

Отправлено 11 января 2021 - 07:56

Коллеги, добрый день.

У кого был опыт развертывания/внедрения?

Помимо синтаксических ошибок в php существует масса проблем с доступом к БД при условии, что одна и та же ссылка - Search Requirement Specifications в 1.9.20 отрабатывает корректно, в 2.0.0-20201221-01 получаем:

 ============================================================================== 
 DB Access Error - debug_print_backtrace() OUTPUT START 
 ATTENTION: Enabling more debug info will produce path disclosure weakness (CWE-200) 
            Having this additional Information could be useful for reporting 
            issue to development TEAM. 
 ============================================================================== 
HHHH#0  database->exec_query( SELECT SRS.id,NH.name AS title  FROM req_specs SRS,  nodes_hierarchy NH , requirements REQ  WHERE testproject_id=  AND SRS.id=NH.id  AND SRS.id = REQ.srs_id  ORDER BY title, -1) called at [C:\wamp64\www\testlink2.0.0-20201221-01\lib\functions\database.class.php:723]
#1  database->fetchColumnsIntoMap( SELECT SRS.id,NH.name AS title  FROM req_specs SRS,  nodes_hierarchy NH , requirements REQ  WHERE testproject_id=  AND SRS.id=NH.id  AND SRS.id = REQ.srs_id  ORDER BY title, id, title) called at [C:\wamp64\www\testlink2.0.0-20201221-01\lib\functions\testproject.class.php:1455]
#2  testproject->getOptionReqSpec(, 1) called at [C:\wamp64\www\testlink2.0.0-20201221-01\lib\requirements\reqSpecSearchForm.php:38]

фактически не нравится строка 723 функции:

  function fetchColumnsIntoMap($sql,$column1,$column2,$cumulative=0,$limit = -1)
  {
    $result = $this->exec_query($sql,$limit);
    $items = null;
    if ($result)
    {
      while ($myrow = $this->fetch_array($result))
      {
        if($cumulative)
          {
          $items[$myrow[$column1]][] = $myrow[$column2];
        }
        else
        {
          $items[$myrow[$column1]] = $myrow[$column2];
        }
      } 
    }

    unset($result);
    return $items;
  }

выделил её.

Так же не устроила строка 1455 функции:

  function getOptionReqSpec($tproject_id,$get_not_empty=self::GET_EMPTY_REQSPEC)
  {
    $additional_table='';
    $additional_join='';
    if( $get_not_empty )
    {
      $additional_table=", {$this->tables['requirements']} REQ ";
      $additional_join=" AND SRS.id = REQ.srs_id ";
    }
    $sql = " SELECT SRS.id,NH.name AS title " .
           " FROM {$this->tables['req_specs']} SRS, " .
           " {$this->tables['nodes_hierarchy']} NH " . 
           $additional_table .
           " WHERE testproject_id={$tproject_id} " .
           " AND SRS.id=NH.id " .
           $additional_join .
         " ORDER BY title";
    return $this->db->fetchColumnsIntoMap($sql,'id','title');
    //return $this->db->fetchRowsIntoMap($sql,'id'); SRS.doc_id,
  } // function end

выделил.

Ну и крайняя строка со ссылкой на 38 строку:

$reqSpecSet = $tproject_mgr->getOptionReqSpec($args->tprojectID,testproject::GET_NOT_EMPTY_REQSPEC);

Есть ли у кого-нибудь соображения на этот счет? )


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных