Joomla 3.6 -> PHP-Code wird nur für Super User richtig angezeigt

  • Hallo,


    ich habe ein Problem mit der Darstellung meines PHP-Scripts: Ich habe direkt in der Datenbank ein PHP-Script angelegt, es liest die Daten aus einer Tabelle und zeigt sie an. Allerdings nur wenn man Super User ist, ein registrierter User bekommt stattdessen als Ansicht die echo-Befehle. Mache ich einen registrierten User zum Super User, dann funktioniert es. Hier ist das Script (ohne den Teil mit der Verbindung zur DB):


    $sql = "SELECT * FROM Wunschliste WHERE Aktiv=1";

    $db_erg = mysqli_query( $db_link, $sql );
    if ( !$db_erg )
    {
    die('Ungültige Abfrage: ' . mysqli_error());
    }
    echo "<table border=1>";
    echo "<tr>";
    echo "<td width=80px align=center bgcolor=#97bd18>" . 'Nummer' . "</td>";
    echo "<td width=200px align=center bgcolor=#97bd18>" . 'Wunsch' . "</td>";
    echo "<td width=200px align=center bgcolor=#97bd18>" . 'Link' . "</td>";
    echo "<td width=200px align=center bgcolor=#97bd18>" . 'Alternative 1' . "</td>";
    echo "<td width=200px align=center bgcolor=#97bd18>" . 'Alternative 2' . "</td>";
    echo "<td width=250px align=center bgcolor=#97bd18>" . 'Bild' . "</td>";
    echo "</tr>";


    while ($zeile = mysqli_fetch_array( $db_erg, MYSQL_ASSOC))
    {
    $bildpfad = $zeile['Bild'];
    $link = $zeile['Link'];
    $link2 = $zeile['Link_Alt1'];
    $link3 = $zeile['Link_Alt2'];
    echo "<tr>";
    echo "<td align=center>". $zeile['Nummer'] ."</td>";
    echo "<td align=center>". $zeile['Wunsch'] ."</td>";
    echo "<td align=center>"."<a href=$link target=_blank>".'z.B. dieses'."</a>"."</td>";
    if ( empty($link2))
    {
    echo "<td align=center>"." "."</td>";}
    else {
    echo "<td align=center>"."<a href=$link2 target=_blank>". 'oder dieses' ."</a>"."</td>"; }
    if ( empty($link3))
    {
    echo "<td align=center>"." "."</td>";}
    else {
    echo "<td align=center>"."<a href=$link3 target=_blank>". 'oder dieses' ."</a>"."</td>";}
    echo "<td align=center>"."<img src=$bildpfad width=200px height=200px >"."</td>";
    // echo "<td>"."$bildpfad"."</td>";
    echo "</tr>";
    }


    echo "</table>";


    ?>


    Ich hab jetzt im Joomla selber schon versucht, durch Anpassungen der Benutzer oder die Textfilterung was zu erreichen, leider erfolglos. Suche bei Google und hier war ebenfalls erfolglos. Ich hoffe ihr habt einen Tipp. Danke!

  • Wie legt mann den in der Datenbank ein PHP-Skript an?
    Wie und wo gibst du es aus?
    Wie wird es eingebunden?
    Warum verwendest du, wenn du die Rechteverwaltung nutzen willst, nicht direkt die Joomla-API?
    Warum arbeitest du mit mysqli und nicht mit Joomlas JDatabase (Joomla-Api)?
    Ich seh in deinem Skript nicht einen Hinweis auf irgendeine Rechte-Weiche oder Rechte-Abfrage.


    Kurz: Was hat das mit Joomla zu tun?


    (Bitte poste deine Codes unter Nutzung des entsprechenden Editor-Buttons.
    Wie postet man Codes in diesem Forum, mit und ohne Spoiler

  • Die Seite ist grundsätzlich mit Joomla gebaut, nachdem man sich eingeloggt hat bekommt man die Inhalte (Bilder und ein paar Texte). Eine Seite davon soll eine Wunschliste für unsere Tochter sein, aus derer die Großeltern, Tanten, Onkel etc. dann die Wünsche auswählen können und sie auch selber austragen können. Ich habe dafür eine eigene Tabelle angelegt und wollte sie mit PHP-Code auslesen. Da Joomla meinen PHP-Code aber nach dem Speichern immer abgewandelt hat (wahrscheinlich wegen Sicherheitsrisiken) habe ich den Code direkt über die Datenbankadministration eingepflegt. Das funktioniert auch, allerdings nur, wenn man als Super User eingeloggt ist. In meinem Code gibt es keine Rechte-Abfrage, deshalb bin ich ja so verwirrt warum es für die eine Benutzergruppe funktioniert, und für die andere nicht.

  • PHP-Code irgendwo in DB einfügen versteh ich noch, auch, wenn noch unklar ist, wo du ihn eingefügt hast (Beitrag, Modul?), aber wie schaffst du es denn, dass der ausgeführt wird? PHP-Code aus der DB führt Joomla ja nicht einfach aus. Dafür brauchst du im Normalfall ja eine Erweiterung oder "Trickserei" wie diese
    Joomla-Modulstil zum Einbinden eigener PHP-Dateien nutzen

  • astrid: Ja, ich hab es über phpMyAdmin eingepflegt.


    @ Re:Later: Dein Hinweis warum der php-Code ausgeführt wird hat mich auf die richtige Spur gebracht. Ich hatte mir als Plugin mal directphp installiert, mich dann aber gewundert, warum der PHP-Code trotzdem von Joomla umgeschrieben wurde. Daher hatte ich es wieder vergessen. Das Plugin selber hatte als Zugriffsebene "Super User", stelle ich es um auf "Registriert" funzt es. Danke!


    Warum Joomla den Code jetzt noch umbiegt verstehe ich trotzdem nicht :)