Scripte die im User-Verzeichnis liegen, mit der Verwaltungskonsole editieren

Ich habe vor dem Update auf V7, einige Scripte die im (alten) User-Verzeichnis lagen,
aus der Verwaltungskonsole editieren können. Da sich der Pfad zum User-Verzeichnis geändert hat,
ist dies nun nicht mehr möglich.

image

Habe es zumindest nicht geschafft den Pfad entsprechend anzupassen.

image

Damit kannst du sie wieder gerade biegen:

Michael

Danke Michael, für den Tipp, werde ich gleich mal versuchen…

Es funktioniert nicht so, wie ich mir das vorstelle.

Egal mit welchem Script ich es versuche,
IPS_SetScriptFile($ScriptID, IPS_GetKernelDir().'user\\'.$ScriptName);
Bringt mir immer die Fehlermeldung, dass die Datei nicht gefunden wird.

Warning: Datei #C:\ProgramData\Symcon\user\html_head.php existiert nicht in C:\ProgramData\Symcon\scripts\28323.ips.php on line 20

Sie ist aber exakt an dieser Stelle:

C:\ProgramData\Symcon\user>dir html_head.php
 Datenträger in Laufwerk C: ist System
 Volumeseriennummer: EEFE-001B

 Verzeichnis von C:\ProgramData\Symcon\user

06.12.2023  12:26             3.135 html_head.php
               1 Datei(en),          3.135 Bytes
               0 Verzeichnis(se), 31.553.593.344 Bytes frei

IPS_GetKernelDir();
bringt bei mir folgende Ausgabe:
C:\ProgramData\Symcon\

Wo ist denn hier der Fehler?

Deine Pfade oben waren doch relativ. Damit schon versucht?
Weil in der Doku ist der Pfad auch immer relativ zu scripts
Also:

IPS_SetScriptFile($ScriptID, '../user/'.$ScriptName); // Kein Backslash, weil das bei non windows Probleme verursacht

Michael

Obwohl der Pfad in der Fehlermeldung ja richtig ist:
Warning: Datei #C:\ProgramData\Symcon\user\html_head.php existiert nicht

bringt mir aber
IPS_SetScriptFile($ScriptID, '../user/html_head.php');
jetzt das gewünschte Ergebnis.

Komisch, warum es nicht mit dem Absoluten Pfad durch IPS_GetKernelDir() funktioniert.

Danke für den Tipp!

Weil die Funktion nur relative Pfade akzeptiert, weil du eigentlich nur ab /scripts in weitere Ordner gehen darfst.
Im Endeffekt ist das eine, eventuell auch sicherheitskritische, Schwachstelle das man mit …/ auch nach oben wechseln kann.
So könntest du jetzt über die Konsole beliebige Datei auf deinem Host-System verändern, zumal der Dienst ja meistens mit höheren Rechten läuft.
Michael

OK, jetzt hab ich’s auch in der Doku gelesen:
Dateiname Dateiname des PHP Skripts (relativ zum “/scripts” Ordner)

Dann hoffe ich mal, dass die Funktion so bleibt wie sie ist. Ich habe etliche Scripts im User-Verzeichnis und es ist sehr praktisch, diese auch über die Konsole verwalten zu können.