Mischa: Nur " aus einem String maskieren

Hallo,

ich arbeite derzeit daran, die Inhalte meiner Website in eine Datenbank zu übertragen und so eine einzige Website (index.php) zu erhalten, welche durch die Angabe der entsprechenden Site-ID (z.B. index.php?si=1) durch die entsprechenden Inhalte aus der Datenbank gefüllt wird.

Mein Problem: Natürlich verwende ich in der Datenbank auch HTML-Quelltext. Sobald nun aber ein Gänsefüßchen im Datenbanktext auftaucht, welchen ich mit echo() in die index.php integriere, "denkt" PHP, der echo-Befehl sei zu Ende und fügt den Rest des Datenbanktextes nicht mehr mit ein.

Durch htmlspecialchars() werden ja leider ALLE Sonderzeichen aus HTML umgewandelt, sodass HTML den Quelltext nicht mehr als HTML-Befehle erkennt, ein ähnliches Problem ergibt sich bei der addslashes()-Funktion.

Wie kann ich also erreichen, dass ich einen HTML-Quelltext aus einer Datenbank in eine PHP-Datei einfügen kann, ohne dass das Gänsefüßchen-Problem auftritt?

Danke für eure Hilfe,
Mischa

  1. Hallo,

    hi

    ich arbeite derzeit daran, die Inhalte meiner Website in eine Datenbank zu übertragen und so eine einzige Website (index.php) zu erhalten, welche durch die Angabe der entsprechenden Site-ID (z.B. index.php?si=1) durch die entsprechenden Inhalte aus der Datenbank gefüllt wird.

    aha ok

    Mein Problem: Natürlich verwende ich in der Datenbank auch HTML-Quelltext. Sobald nun aber ein Gänsefüßchen im Datenbanktext auftaucht, welchen ich mit echo() in die index.php integriere, "denkt" PHP, der echo-Befehl sei zu Ende und fügt den Rest des Datenbanktextes nicht mehr mit ein.

    Naja HTML Quelltext in ne DB einzutragen ist net sooo der Reisser, da deine MySQL DB da schnell an die Grenzen stossen kann und immens groß werden könnte! Also dumme Idee ;)
    Irgendwie kommen ja die Daten in die DB, wie stellst du denn das an? Mit einem Formular oder direkt rein? Mann könnte nämlich dann mit Tags arbeiten: quasi [zentriert]text[/zentriert] und dann im php so ähnlich schreiben:
    $inhalt=eregi_replace("[zentriert]","<div align="center">",$inhalt);
    $inhalt=eregi_replace("[/zentriert]","</div>",$inhalt); oder soooo

    Durch htmlspecialchars() werden ja leider ALLE Sonderzeichen aus HTML umgewandelt, sodass HTML den Quelltext nicht mehr als HTML-Befehle erkennt, ein ähnliches Problem ergibt sich bei der addslashes()-Funktion.

    Wie kann ich also erreichen, dass ich einen HTML-Quelltext aus einer Datenbank in eine PHP-Datei einfügen kann, ohne dass das Gänsefüßchen-Problem auftritt?

    Da gibts noch den Effekt mit dem einfachen Hochkomma --> ' <--

    Danke für eure Hilfe,

    Bitte

    Mischa

    cg

    1. Naja HTML Quelltext in ne DB einzutragen ist net sooo der Reisser, da deine MySQL DB da schnell an die Grenzen stossen kann und immens groß werden könnte! Also dumme Idee ;)

      Naja, also es soll ja keine riesen Homepage werden und nur so ca. 20 bis 30 Seiten beinhalten. Ich kenne eine Page (www.youth-page.de), bei der das sehr gut klappt. (Frag mich jetzt nicht wie!)

      Irgendwie kommen ja die Daten in die DB, wie stellst du denn das an? Mit einem Formular oder direkt rein? Mann könnte nämlich dann mit Tags arbeiten: quasi [zentriert]text[/zentriert] und dann im php so ähnlich schreiben:
      $inhalt=eregi_replace("[zentriert]","<div align="center">",$inhalt);
      $inhalt=eregi_replace("[/zentriert]","</div>",$inhalt); oder soooo

      Also:
      Da das ganze nur ne private Page ist, mach ich mir nicht den Umstand und bastle dafür extra ein Formular, sprich: ich gebe den Quelltext direkt in die Datenbank ein.

      Da gibts noch den Effekt mit dem einfachen Hochkomma --> ' <--

      Du meinst damit, statt den Gänsefüßchen im HTML-Quelltext ein Semikolon zu nehmen, hab ich Recht? Das Problem ist leider, dass die Homepage ja eigentlich schon fertig ist und ich sie nur auf Datenbank UMSTELLEN will. Und ich habe halt keine Lust, bei jeder einzelnen Seite " in ' umzuwandeln bzw. " mit Backslash zu maskieren. Ich kopiere die fertigen Dateien einfach in die entsprechenden Datensätze hinein und es wäre schön, wenn es da auch irgendeine Möglichkeit geben würde, dass das funktioniert... ;-)

      Danke für eure Hilfe,
      Bitte

      Und nochmals Danke :),
      Mischa

      =====================================================================
      PS: Was gibt es denn sonst noch für Möglichkeiten, ein und dieselbe Hauptseite (von mir aus wieder index.php) mit verschiedenen Inhalten zu füllen?

      1. N'Abend.

        PS: Was gibt es denn sonst noch für Möglichkeiten, ein und dieselbe Hauptseite (von mir aus wieder index.php) mit verschiedenen Inhalten zu füllen?

        Warum kopierst du nicht einfach deinen bereits vorhanden Quelltext in eine Textdatei (z.B. datei.txt oder *.inc).
        Dann brauchst du in deiner Hauptseite nur noch ein
        <?php
        include("datei.inc");
        ?>
        einfügen und du hast dein gewünschtes Ergebnis...

        Und Probleme mit den Anführungszeichen gibt's dann auch nicht mehr.

        HTH

        Gruß
        OLZU

        1. Warum kopierst du nicht einfach deinen bereits vorhanden Quelltext in eine Textdatei (z.B. datei.txt oder *.inc).
          Dann brauchst du in deiner Hauptseite nur noch ein
          <?php
          include("datei.inc");
          ?>
          einfügen und du hast dein gewünschtes Ergebnis...

          Ja, so hatte ich's ja quasi vorher. Das Problem ist nur, dass ich dann für jede einzelne Seite eine Textdatei benötigen würde und das mit der Datenbank ist halt wesentlich übersichtlicher gelöst, finde ich (und man kann auch von überall drauf zugreifen)!

          Da muss es doch noch irgendeine andere Möglichkeit geben!?

          Gruß,
          Mischa