Individuelle Platzhaltee suchen und ersetzten

BartTotal

Mitglied
Hallo liebe Forengemeinschaft.

Ich blicke grad bei meinem Template script nicht durch.

Das Template soll geladen werden. Anschliessend alle individuelle {PLATZHALTER} gesucht und durch content gefüllt werden.

Die Schwierigkeit habe ich damit, dass die Platzhalter unbekannt sind, sprich ich kenne deren Namen nicht.

Eine weitere Schwierigkeit für mich ist es die Content Zeilen aus der DB mit den Platzhalter zu verbinden.

Hier eine content zeile:
ID: 1 Name: Startseite Platzhalter: Rechts

Jetzt sollte der Script nach Platzhaltern im Template suchen «{Rechts}, {Links}, {Mitte}» und falls vorhanden mit Content füllen mit dem passenden Platzhalter.

Danke für jegliche Tipps und Hilfe
 
PHP:
//Template laden
    $sql_3 = mysql_query("SELECT id, name, source FROM office_template WHERE id = '$option->id'");
    $template = mysql_fetch_object($sql_3);
   
//Panelgroup/Platzhalter ausgeben werden als namen gespeichert z.B( CONTENT, LINKS, RECHTS)
    $sql_4 = mysql_query("SELECT id, name FROM office_template_placeholder");
    while($placeholder = mysql_fetch_object($sql_4)){
        $panelgroup[] = '{'.$placeholder->name.'}';
    }
   
//Content laden, ladet die Inhalte der Seite und den Namen der Platzhalter (Panelgroup)
    $sql_5 = mysql_query("SELECT id, panel_id, name, source, panelgroup FROM office_content WHERE panel_id = '$_GET[panel_id]'");
    while($content = mysql_fetch_object($sql_5)){
        $placefiller[] = $content->source;
    }

nun das Problem ist das ich nicht weiss wie ich das template nach den Platzhaltern durchsuchen soll und diese dann anschliessend mit Content füllen.
 
...manchmal denke ich, wir brauchen hier einen Downvote-Button.

BartTotal, zwei Stichworte, die auch für dich nichts neues sind:
Mysqli, SQL-Injection

Zum eigentlichen Problem helf ich dir evt. dann weiter.
 
Eigentlich löst es gleich mehrere Probleme...

Zu dem, das hier gefragt ist, helf ich dir wie gesagt gern weiter, sobald man aufhört seine Benutzer (und die eigene Geldtasche) aus Faulheit zu gefährden. Es wäre so einfach.
 
Echt flott von dir.
Möchte nicht absichtlich jemanden gefährden.
PHP:
    include 'config/config.php';
    $conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
 
   
//User daten
    session_start();
    $sql_1 = $conn->query("SELECT name, type FROM office_users WHERE name = '$_SESSION[name]'");
    $user = mysqli_fetch_object($sql_1);
   
//Optionen laden
    $sql_2 = $conn->query("SELECT id, name, value FROM office_option WHERE name = 'template'");
    $option = mysqli_fetch_object($sql_2);
   
//Template laden
    $sql_3 = $conn->query("SELECT id, name, source FROM office_template WHERE id = '$option->id'");
    $template = mysqli_fetch_object($sql_3);
   
//Panelgroup ausgeben
    $sql_4 = $conn->query("SELECT id, name FROM office_template_placeholder");
    while($placeholder = mysqli_fetch_object($sql_4)){
        $panelgroup[] = '{'.$placeholder->name.'}';
    }
   
//Content laden   
    $sql_5 = $conn->query("SELECT id, panel_id, name, source, panelgroup FROM office_content WHERE panel_id = '$_GET[panel_id]'");
    while($content = mysqli_fetch_object($sql_5)){
        $placefiller[] = $content->source;
    }
   
//Panelgroup ersetzen
    $template = $template->source;
   
    echo $template;

Könnt ihr mit Tipps geben oder Ansätze zur Lösung?
 
Zurück