首頁  >  問答  >  主體

在 Davical 中新增群組會導致錯誤

<p>嗨,我正在嘗試使用Postgres、nginx 和php8.1 在Nextcloud 旁邊安裝Davical,它已經部分工作(添加用戶或資源工作正常),但是當我想建立群組時,我收到以下錯誤訊息: </p> <p>我可以在管理面板中建立群組,但是當我呼叫群組頁面時(<code>https://calendar.example.de/admin.php?action=edit&t=principal&id=1019</ code>) 我在“群組成員資格”下收到此錯誤訊息:</p> <pre class="brush:php;toolbar:false;">Exception [42601] SQLSTATE[42601]: Syntax error: 7 FEHLER: Müll folgt auf numerische Konstante bei »1019O« ZEILE 1: ...member WHERE group_id = 1019) AND principal_id != 1019ORDER ... ^ At line 95 of /usr/share/awl/inc/AwlDatabase.php ================= Stack Trace ===================== /usr/share/davical/htdocs/admin.php[50] Browser->Render() /usr/share/awl/inc/classBrowser.php[852] edit_group_row() /usr/share/davical/inc/ui/principal-edit.php[591] Editor->Render() /usr/share/awl/inc/classEditor.php[669] preg_replace_callback() [0] Editor->ReplaceEditorPart() /usr/share/awl/inc/classEditor.php[597] EntryField::BuildOptionList() /usr/share/awl/inc/DataEntry.php[306] AwlQuery->Exec() /usr/share/awl/inc/AwlQuery.php[585] AwlQuery->Execute() /usr/share/awl/inc/AwlQuery.php[396] AwlDatabase->query() /usr/share/awl/inc/AwlDatabase.php[95] PDO->query()</pre> <p>並且我無法將使用者新增至群組。 </p> <p>Davical錯誤日誌中還存在以下錯誤訊息</p> <pre class="brush:php;toolbar:false;">2023/04/26 11:38:59 [error] 330989#330989: *17 FastCGI sent in stderr: "PHP message: PHP Early Exception [42601] SQLSTATE[42601]: Syntax error: 7 FEHLER: Müll folgt auf numerische Konstante bei »1019O« ZEILE 1: ...member WHERE group_id = 1019) AND principal_id != 1019ORDER ... ^ at /usr/share/awl/inc/AwlDatabase.php:95" while reading upstream, client: 192.168.100.2, server: calendar.example.de, request: "GET /admin.php?actiont=ed&le.de, request: "GET /admin.php?actiont=ed& =principal&id=1019 HTTP/2.0", upstream: "fastcgi://unix:/run/php/php8.1-fpm.sock:", host: "calendar.example.de"< /pre> <p>postgresql 錯誤日誌顯示:</p> <pre class="brush:php;toolbar:false;">2023-04-26 11:59:29.228 CEST [333501] davical_app@davical ANWEISUNG: SELECT pavirpal_id, coo​​ename, frinname, full級principal_id NOT IN (SELECT member_id FROM group_member WHERE group_id = 1019) AND principal_id != 1019ORDER BY 2</pre> <p>使用 ubuntu 22.04、php8.1、postgresql 15、Davical 1.1.11-1、libawl-php 0.63-1 全部</p> <p>我檢查了 php8.1-fpm.sock,在 www.conf 和對應的 nginx 設定中,到套接字的連結都是正確的。 php8.1.-fpm.sock 可用,使用者權限和擁有者似乎設定正確。 也許我錯過了什麼,或者postgresql資料庫有錯誤? 有人可以進一步幫助我嗎? </p> <p>謝謝! </p>
P粉460377540P粉460377540381 天前585

全部回覆(1)我來回復

  • P粉098417223

    P粉0984172232023-09-05 10:19:39

    這段程式碼是錯的:

    $sql = 'SELECT principal_id, coalesce(displayname,fullname,username) FROM dav_principal ';
      $sql .= 'WHERE principal_id NOT IN (SELECT member_id FROM group_member WHERE group_id = '.$id.') ';
      $sql .= 'AND principal_id != '.$id;
      $sql .= 'ORDER BY 2';

    ORDER BY 在 $id 之後卡住,導致您看到錯誤訊息。

    修復:ORDER BY 之前有多餘空格:

    $sql .= ' ORDER BY 2';

    可以找到該檔案這裡,principal-edit.php

    回覆
    0
  • 取消回覆