php-Quelltext in Seite mit anderen Widgets integrieren

  • Hallo,

    ich muss php-Quelltext zur Abfrage des Cookie-Status (Angemeldete haben Zugriff auf andere Inhalte) in Seiten mit Widgets (Text, Bild, Album...) einbauen:

    <?PHP

    if (isset($_COOKIE[$cookieName])) {

    //mach dies und das;

    } else {

    //mach was anderes';

    }

    ?>

    Leider funktioniert das Quelltext-Widget nicht zusammen mit den anderen. Eine Eingabe in das Quelltextfenster eines anderen Widgets wird vom Producer auskommentiert.

    Wer kann helfen?

    Danke

  • Hallo,

    da müssen Sie das Widget "Quelltext" verwenden und in den Seiten-Eigenschaften den Dateitype auf .php ändern.

    Freundliche Grüße
    Steffen T. (Zeta Producer-Support)

  • Oh ja, selbstverständlich habe ich das als erstes gemacht. Ich vergaß, das zu erwähnen, außer dass ich schrieb:

    "Leider funktioniert das Quelltext-Widget nicht zusammen mit den anderen"

    Erstaunlicherweise erscheint die Seite korrekt in der Vorschau aber nach dem Upload eben nur noch LEER: Kopfzeile vorhanden, alles unterhalb ist nicht sichtbar und wird auch nicht im Quelltext aufgeführt (wie auch?)

  • Erstellen Sie doch mal eine Testseite mit dem Code und stellen diese online.

    Nur so können wir evtl. helfen.

    Freundliche Grüße
    Steffen T. (Zeta Producer-Support)

  • Also ich persönlich würde mal in Zeile 2 vom PHP das hier:

    Code
    error_reporting(5);

    ersetzen durch

    Code
    error_reporting(E_ALL);

    Mutmaßlich sind die nachfolgenden Includes, die es mutmaßlich gar nicht gibt, Schuld an dem Fehlverhalten.

  • Hallo,

    wenn Sie den gesamten Code im Anhang "anmelden.txt" in das Quelltext-Widget eingefügt haben, dann kann das natürlich nicht funktionieren.

    Der Code enthält nämlich ein komplettes HTML-Gerüst mit DOCTYPE und BODY...

    Des Weiteren enthält der PHP-Code relative Verweise auf andere PHP-Dateien.

    Zum Beispiel phpscript/grab_globals.lib.php

    Wenn Sie nur den PHP-Code in das Quelltext-Widget einfügen und auch sicherstellen, dass die verweisenden PHP-Dateien vorhanden sind, dann sollte der Code auch funktionieren.

    Freundliche Grüße
    Steffen T. (Zeta Producer-Support)

  • Hallo,

    es tut mir Leid, aber es geht nicht.

    Die include-Dateien liegen seit 20 Jahren an der gleichen Stelle und werden auch von anderen Seiten dieser Site verwendet (Formular und Datenbankanbindung: https://www.memleb.de/klassische-stuecke.php.

    Ebenso auf der Seite https://www.memleb.de/westfalen-meisterschaft-2019.php funktioniert php in Mischung mit anderen Widgets.

    Auch bei E_ALL wird keine Fehler angezeigt (nicht gefundene Includes werden als "FATAL ERROR" immer ausgeworfen.

    Nebenbei: Die Seite (Bilderbuecher) war, nachdem ich ZETA zwischenzeitlich geschlossen hatte, in ZETA nicht mehr zu öffnen und musste komplett neu erstellt werden. Auch mit dieser funktioniert es - wie gesagt - nicht.

    Ich werde also wohl auf die geschützten Download-Angebote für die Besucher verzichten müssen. Schade.

    MfG

  • Hallo,

    prüfen Sie doch bitte mal, wo diese 3 Dateien auf dem Webserver liegen:

    Code
    require_once ('phpscript/grab_globals.lib.php');
    include_once ('phpscript/ConnectToMySql.php');
    include_once ('phpscript/cookie.lib.php');

    Evtl. ist der PHP-Code mit der aktiven PHP Version 7.3.6 auch nicht kompatibel.

    Am besten auch mal mit dem Entwickler des Codes Kontakt aufnehmen.

    Übrigens ist auch die im Code verweisende Bilddatei nicht mehr vorhanden.

    Siehe https://www.memleb.de/media/images/wf-man-logo.png

    Freundliche Grüße
    Steffen T. (Zeta Producer-Support)

  • Moin,

    der "Fehler" wurde gefunden: Es gab in einer Funktion (in den Includes) einen Namenskonflikt mit einem php-eigenen Befehl, der von keinem der mir zur Verfügung stehenden Parser als Fehler erkannt wurde.

    Nach Änderung des Namens gab es keinerlei Problem mehr mit ZETA.

    Vielen Dank für Ihre Mühe und Bereitschaft, mir zu helfen.

    Vielleicht könnten Sie noch einen Rat loswerden, wie ich ein (Session-) Cookie setze, da ich ja keinen Einfluss auf die Ausgabereihenfolge einer Seite durch ZETA habe (Ausgabe gemacht --> keine HEADER-Funktion mehr möglich). Ohne Cookie müsste ich in die Mottenkiste greifen und eine page to page Übergabe programmieren. Ich will das nicht mehr, dafür bin nun doch schon zu alt ;)

  • Da sollte folgendes (bzw PHP outputbuffering) helfen:

    Der Wachtelhund Shop - wir besticken
    Textilien mit dem Logo des Vereins für Deutsche Wachtelhunde e.V. veredelt
    wachtelhundshop.stixxx-stick.de

    Das wird über das ZP Scripting genutzt. Solche scripts können im Quelltext per <$ $> eingebunden werden, also z.B.:

    Freundliche Grüße
    Stefan S. (Zeta Producer-Support)

  • Da sollte folgendes (bzw PHP outputbuffering) helfen:

    https://developer.zeta-producer.com/system-objekt.html#a1498

    Das wird über das ZP Scripting genutzt. Solche scripts können im Quelltext per <$ $> eingebunden werden, also z.B.:

    Moin,

    das habe ich (so, wie es von Ihnen empfohlen wurde) in ein Quelltext-Widget auf der Seite, auf der die Session gebraucht wird (Anmeldung), eingegeben (bilderbuecher.php)

    Mir ist nicht klar, was die HEADER-Zeilen mit session_start() zu tun haben, aber ich habe sie mal hingeschrieben.

    Im Anmelde-Quelltext-Widget weise ich einen Wert zu:

    $_SESSION['cookWFPIC'] = $mailAdr;

    Auf der Seite Westfalen-Meisterschaft-2019.php frage ich den Wert ab:

    $cookName="cookWFPIC";

    $cookContent = $_SESSION['$cookName'];

    Entweder mache ich (mal wieder) etwas falsch oder die Session wird gar nicht eingerichtet.

    Die Versuche liefen auf dem Server wegen Datenbank usw.

    Liebe Grüße

    Wolfgang Memleb

  • Mir ist nicht klar, was die HEADER-Zeilen mit session_start() zu tun haben, aber ich habe sie mal hingeschrieben.

    Der Code im Beispiel war nur – Beispielhaft. Welchen Code Sie da eingeben ist Ihnen überlassen. Wichtig war nur zu zeigen, wie man PHP-Code in ZPScripting in einer JS Variablen speichert und den dann per system.addFinishScript() vor allen anderen Inhalten der Seite ausgeben kann.

    Tiefergehenden PHP-Support kann ich Ihnen leider nicht bieten.

    Freundliche Grüße
    Stefan S. (Zeta Producer-Support)

  • Der Code im Beispiel war nur – Beispielhaft. Welchen Code Sie da eingeben ist Ihnen überlassen. Wichtig war nur zu zeigen, wie man PHP-Code in ZPScripting in einer JS Variablen speichert und den dann per system.addFinishScript() vor allen anderen Inhalten der Seite ausgeben kann.

    Tiefergehenden PHP-Support kann ich Ihnen leider nicht bieten.

    Glückauf,

    vielen Dank für Ihre Mühe: Es hat sich gelohnt, den nun arbeitet alles so wie geplant. Ohne den Hinweis "<$ $>" hätte ich allerdings auf verlorenem Posten gestanden.

    Gibt es eine Möglichkeit, einzelne Seiten wiederherzustellen (wenn ich mal eine zerschossen habe)?

    Ein schönes Wochenende

    Wolfgang Memleb

  • Mit F8 in den Spaltenmodus wechseln, dann lassen sich auch bei „zerschossenen“ Seiten die Artikel bearbeiten oder ggf. löschen.

    Freundliche Grüße
    Stefan S. (Zeta Producer-Support)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!