Das Plus-Zeichen wird bei einem at-defmod nicht mit übergeben

Begonnen von Ralli, 05 März 2023, 11:43:32

Vorheriges Thema - Nächstes Thema

Ralli

Guten Morgen,

ich möchte über einen Link im Standard-Webfrontend ein bzw. zwei Kommando(s) ausführen. Der Link wird wie folgt zusammengebaut:


my $callMe='<a href="/fhem?cmd=set '.$name;
if($state eq 'disabled') {
$callMe .=' enable ';
$cmd =$callMe.'">Enable</a>';
} else {
$callMe .=' disable ;defmod at_AdGuard_enable at +00:';
$cmd  =       $callMe.'01:00 set '.$name.' enable">1</a>';


Daraus wird richtigerweise


<a href="/fhem?cmd=set adguard disable ;defmod at_AdGuard_enable at +00:01:00 set adguard enable">1</a>


laut Seitenquelltext generiert. Rufe ich diesen Link nun auf, wird das Plus-Zeichen allerdings verschluckt und in der Folge kein relatives at sondern ein absolutes at angelegt.

Was mache ich falsch?
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.83.6.20250705) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

rudolfkoenig


betateilchen

Ich würde versuchen, das "+" durch "+" zu ersetzen und testen, ob das schon ausreicht.

Hat eigentlich das Leerzeichen in "disable ;defmod" irgendeine Bedeutung? Das mag zwar funktionieren, sieht aber unüblich aus.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Ralli

Danke, mit dem Hinweis hat es ausgereicht, die Zeile


$callMe .=' disable ;defmod at_AdGuard_enable at +00:';


durch


$callMe .= urlEncode(' disable ;defmod at_AdGuard_enable at +00:');



zu ersetzen.

@Betateilchen:
Zitat
Ich würde versuchen, das "+" durch "+" zu ersetzen und testen, ob das schon ausreicht.
Das hatte ich probiert, es hatte nicht gereicht/geholfen. Nein, das Leerzeichen ist ein Überbleibsel.
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.83.6.20250705) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

xenos1984

Zitat von: betateilchen am 05 März 2023, 12:05:38
Ich würde versuchen, das "+" durch "+" zu ersetzen und testen, ob das schon ausreicht.

"+" ist HTML Encoding. URL Encoding ist "%2B".