Das Hinzufügen einer Gruppe in Davical verursacht einen Fehler
P粉460377540
P粉460377540 2023-09-04 22:16:39
0
1
680
<p>Hallo, ich versuche, Davical neben Nextcloud mit Postgres, Nginx und PHP8.1 zu installieren. Es hat teilweise funktioniert (das Hinzufügen von Benutzern oder Ressourcen funktioniert einwandfrei), aber wenn ich Gruppen erstellen möchte, erhalte ich die folgende Fehlermeldung : </p> <p>Ich kann Gruppen im Admin-Panel erstellen, aber wenn ich die Gruppenseite aufrufe (<code>https://calendar.example.de/admin.php?action=edit&t=principal&id=1019</ code> ) Ich erhalte diese Fehlermeldung unter „Gruppenmitgliedschaft“: </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 ... ^ In Zeile 95 von /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>Und ich kann keine Benutzer zu Gruppen hinzufügen.</p> <p>Davical错误日志中还存在以下错误消息</p> <pre class="brush:php;toolbar:false;">2023/04/26 11:38:59 [Fehler] 330989#330989: *17 FastCGI gesendet in stderr: "PHP-Nachricht: PHP Early Exception: [42601] SQLSTATE[42601]: Syntaxfehler: 7 FEHLER: Müll folgt auf numerische Konstante bei »1019O« ZEILE 1: ...member WHERE group_id = 1019) AND Principal_id != 1019ORDER ... ^ unter /usr/share/awl/inc/AwlDatabase.php:95" beim Lesen Upstream, Client: 192.168.100.2, Server: Calendar.example.de, Anfrage: "GET /admin.php?action=edit&t=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 Principal_ID, merge(displayname,fullname,username) FROM dav_principal WHERE 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 可用, 用户权限和所有者似乎设置正确. 也许我错过了什么,或者postgresql数据库有错误? 有人可以进一步帮助我吗?</p> <p>谢谢!</p>
P粉460377540
P粉460377540

Antworte allen(1)
P粉098417223

这段代码是错误的:

$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

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage