Webfront in autoprepend/autoappend identifizieren?

Leider wird (Version 2.6) entgegen der Doku in $_IPS[‚SENDER‘] NICHT „Webfront“ ausgegeben, wenn per Webfront zugegriffen wird, sondern „WebInterface“.

Da die Instance-Nummer ja leider auch auf jedem System verschieden sein dürfte, ist eine Abfrage dieser nicht wirklich sinnvoll.

Ich im mache einiges im autoprepend, ggf. auch „echo-“ Ausgaben etc… Das verwirrt Webfront derart, dass es nicht mehr funktioniert.

Was also ist die geeignete Methode, um im autoprepend/append ein „return“ vor allem anderen Code zu schreiben, wenn der Client Webfront UND NICHT EIN BROWSERZUGRIFF via Webserver ist?

Nicht wirklich möglich, da das WebFront in der super alten Version 2.6 noch über eine index.php aufgebaut wurde (zumindest die Startseite). Diese wird auch korrekt als Sender WebInterface deklariert. An der Stelle ist es nämlich noch kein WebFront, sondern ein einfacher Webaufruf.

Idee: Schau dir mal $_SERVER an, ob dort z.B. ein /webfront/index.php ist, auf das du als Zusatzregel setzen kannst.

Ab IP-Symcon 3.0 wird das WebFront ohne index.php gebaut, sodass es dann ohne den Workaround gehen würde.

paresy

Habe in $_Server gesehen, dass „PHP_SELF“ im Webfront ="/" ist und bei anderen Aufrufen die Website ist, die nach :82 im Browser aufgerufen wurde. Ich hoffe, dass das konsistent ist?

Ja, solange du nicht einen weiteren Webserver mit eigenem Inhalt hast. Dort kann ja wieder ein / vorhanden sein.

paresy

Das hab ich noch nicht verstanden … ich habe (den) (einen?) Webserver laufen, auf einem eigenen Port. Aber wenn dorthin Anfragen gehen, laufen die ja per

<ip-adresse : port>/<webpage_oder_php>

und damit ist PHP_SELF=<webpage_oder_php>

oder hab ich da was wichtiges übersehen?

Du kannst theoretisch ja mehrere haben. Wollte nur darauf hinweisen.

paresy

ok. habe das gerade gecheckt. Ohne Angabe einer Webseite wir immer index.htm oder index.php aufgerufen … und dann ist das dilemma da.

Schade, dass das nicht zuverlässig funktioniert, denn ich bin daran, eine allgemeine Lib als Objektklasse zu bauen, die dann von allen Usern benutzt werden könnte.

Für so etwas allgemeines muss man aber ALLE Fälle abfangen.