Ergebnis 1 bis 12 von 12

Thema: Text aus DB - PHP-Befelhle lesen?

  1. #1
    TP-Member Avatar von th_03
    Registriert seit
    Apr 2003
    Ort
    Ar... der Heide
    Beiträge
    81

    Red face Text UND PHP aus DB lesen?

    Hallo an die Dynamik-Experten!

    Ich scheine Denkblockade zu haben. Folgendes: Ich habe eine index.php, die aus einer SQL-Datenbank je nach URL-ID Inhalt anzeigen soll. Das tut sie auch. Nun habe ich eben im DB-Feld „content“ sowohl HTML, als auch PHP-Befehle (siehe unten Code 2) gehabt.

    Wenn ich nun sage:

    PHP-Code:
     <?php $Artikel $row_inhalte['content'];
    // $Artikel = ereg_replace("ß", "&szlig;", $Artikel);
    $Artikel ereg_replace("ö""&ouml;"$Artikel);
    $Artikel ereg_replace("ä""&auml;"$Artikel);
    $Artikel ereg_replace("ü""&uuml;"$Artikel);
    $Artikel ereg_replace("Ö""&Ouml;"$Artikel);
    $Artikel ereg_replace("Ä""&Auml;"$Artikel);
    $Artikel ereg_replace("Ü""&Uuml;"$Artikel);
    echo 
    $Artikel?>
    wird die folgende Tabelle zwar angezeigt, die PHP-Befehle jedoch ignoriert.

    HTML-Code:
    <table width="520" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <th height="25" style="padding-left: 8px;"><b>Datum</b></th>
    <th height="25"><b>Veranstaltung</b></th>
    <th height="25"><b>Ort</b></th>
    </tr>
    <?php do { ?>
    <tr>
    <td height="5" colspan="3">&nbsp;</td>
    </tr>
    <tr>
    <td width="150" height="40" valign="top" style="padding-left: 8px;"><b><?php echo $row_kalender['wochentag']; ?>, <?php echo $row_kalender['datum']; ?></b><br> <?php echo $row_kalender['uhrzeit']; ?> </td>
    <td width="270" height="40" valign="top" >
    <p class="event"><?php echo $row_kalender['veranstaltung']; ?></p></td>
    <td width="100" height="40" valign="top"><?php echo $row_kalender['ort']; ?></td>
    </tr>
    <?php if (isset($row_kalender['bemerkung'])) { ?>
    <tr valign="middle">
    <td height="25" style="padding-left: 8px;"><em>Bemerkungen:</em></td>
    <td colspan="2" class="bemerkung"><?php echo $row_kalender['bemerkung']; ?></td>
    </tr>
    <?php } ?>
    <tr valign="middle">
    <td height="25" colspan="3" style="padding-left: 8px;"><hr size="1" noshade color="#cc0000"></td>
    </tr>
    <?php } while ($row_kalender = mysql_fetch_assoc($kalender)); ?></table>
    
    <?php } // Show if recordset not empty
    	else echo "<p>Es liegen zur Zeit keine gespeicherten Termine vor.</p>"; ?>
    Meine Hypothese: Der echo-Befehl gibt zwar Datenbankfelder wieder, ist aber nicht in der Lage Code zu verarbeiten. Richtig? Hilfe!

    Was muss ich tun, damit meine PHP-Codes aus der Datenbank-Tabelle gelesen werden und die Tabelle (Code 2) somit gefüllt wird? Gibt es da einen anderen PHP-Befehl? (Wie ihr vielleicht merkt, habe ich gerade erst mit PHP begonnen ...)


    Viele Grüße,

    Torben
    Geändert von th_03 (01.07.2005 um 20:22 Uhr)
    Moje zycie jest jak papier toaletowy: Dlugie, szare ... y do dupy!

  2. #2
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    Der Befehl lautet eval

    Du hast ja alles in einem String. Die Funktion wertet den String aus, als wenn es PHP-Code wäre.

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer

  3. #3
    TP-Member Avatar von th_03
    Registriert seit
    Apr 2003
    Ort
    Ar... der Heide
    Beiträge
    81
    Ähm ... danke, aber ich bin zu blöd ... das klappt nicht:

    Parse error: syntax error, unexpected T_LNUMBER in E:\apachefriends\xampp\htdocs\SC_Rothenhausen_2005\index.php(101) : eval()'d code on line 4
    Ich bekomme eine Fehlermeldung, demnach ist

    PHP-Code:
    eval ("\$Artikel = \"$Artikel\";");
    echo 
    $Artikel?> 
    nicht richtig. Ich bin total verwirrt. Wie muss das denn jetzt heißen? Oh Gott, ist das peinlich. Das kommt davon, wenn man seit heute Morgen am Rechner sitzt .
    Geändert von th_03 (01.07.2005 um 20:08 Uhr)
    Moje zycie jest jak papier toaletowy: Dlugie, szare ... y do dupy!

  4. #4
    TP-Greis Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420
    Nebenfrage - wieso ersetzt Du die Umlaute umständlich "manuell", und nicht z.B. mit htmlentities?
    My software never has bugs. It just develops random features ...

    » DevShack - die Website des freien Webentwicklers Boris

  5. #5
    TP-Member Avatar von th_03
    Registriert seit
    Apr 2003
    Ort
    Ar... der Heide
    Beiträge
    81
    @Boris: Nun, ich glaube, dass hing damit zusammen, dass die Ausgabe mit htmlentities nicht nur umgeformte Umlaute, sondern auch andere Sonderzeichen zur Folge hatte ... auf jeden Fall sah es nicht so aus, wie es hätte aussehen sollen.
    Moje zycie jest jak papier toaletowy: Dlugie, szare ... y do dupy!

  6. #6
    TP-Member Avatar von th_03
    Registriert seit
    Apr 2003
    Ort
    Ar... der Heide
    Beiträge
    81
    Also, kleiner Nachtrag:

    Jetzt wird zwar der HTML-Teil der Datenbank-Zelle ausgegeben, also auch die Tabelle an sich, aber trotzdem bleibt sie leer. Die PHP-Befehle werden nach wie vor im Quelltext angezeigt, aber nicht ausgeführt
    Moje zycie jest jak papier toaletowy: Dlugie, szare ... y do dupy!

  7. #7
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    so wärs ja auch ein büschen einfach

    Du hast einen HTML-Block mit eingebettetem php.
    extrahiere den <?php ... ?> , lösche die Tags und führe nur diesen Block in eval aus.

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer

  8. #8
    TP-Member Avatar von th_03
    Registriert seit
    Apr 2003
    Ort
    Ar... der Heide
    Beiträge
    81
    Wie soll denn die PHP-Befehle extrahieren? Ich verstehe jetzt gar nichts mehr. Wenn ich nun ... nein, zu suspekt, was ich hier gerade denke. Es tut mir Leid, aber im normalen Leben bin ich nicht so schwer von Begriff ... hoffe ich für meine Mitmenschen zumindest. Kannst du mit bitte noch mal ganz langsam für ganz Blöde erklären, wie das geht, was du da meinst.

    Nochmal eine Notiz für mich: Die PHP-Befehle befinden sich in einer HTML-Tabelle, die angezeigt wird. Immerhin ein halber Erfolg ;-).
    Moje zycie jest jak papier toaletowy: Dlugie, szare ... y do dupy!

  9. #9
    TP-Member Avatar von th_03
    Registriert seit
    Apr 2003
    Ort
    Ar... der Heide
    Beiträge
    81
    Also, in einem anderen Forum wurde mir folgender Tipp gegeben:
    PHP-Code:
    eval('?>'.$Artikel.'<?); ?>
    ... funktioniert aber auch nicht. Funktioniert eval überhaupt mal irgendwann? Jetzt motzt eval rum, weil er eine Klammer nicht haben will:

    Parse error: syntax error, unexpected '}' in E:\apachefriends\xampp\htdocs\SC_Rothenhausen_2005\index.php(101) : eval()'d code on line 31

    Was soll denn das ständig? Kann das nicht einfach mal funktionieren?
    Moje zycie jest jak papier toaletowy: Dlugie, szare ... y do dupy!

  10. #10
    TP-Greis Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420
    Was soll denn das ständig? Kann das nicht einfach mal funktionieren?
    Solang Dir nicht klar ist, wo der Fehler liegt, nicht ... denn er bemängelt eine } Klammer, und keinen Teil des von dir gezeigten Codes

    Zeig uns doch mal alles!
    My software never has bugs. It just develops random features ...

    » DevShack - die Website des freien Webentwicklers Boris

  11. #11
    TP-Member Avatar von th_03
    Registriert seit
    Apr 2003
    Ort
    Ar... der Heide
    Beiträge
    81
    Na ja, gut, das mit der }-Klammer ist mir schon klar. Bin sehr frustiert. Also, jetzt gibts also den gesamten Code der index.php (du hast es ja so gewollt ):

    PHP-Code:
    <?php require_once('Connections/SC_R_2005.php'); ?>
    <?php
    $maxRows_news 
    3;
    $pageNum_news 0;
    if (isset(
    $HTTP_GET_VARS['pageNum_news'])) {
      
    $pageNum_news $HTTP_GET_VARS['pageNum_news'];
    }
    $startRow_news $pageNum_news $maxRows_news;

    mysql_select_db($database_SC_R_2005$SC_R_2005);
    $query_news "SELECT * FROM news ORDER BY datum DESC";
    $query_limit_news sprintf("%s LIMIT %d, %d"$query_news$startRow_news$maxRows_news);
    $news mysql_query($query_limit_news$SC_R_2005) or die(mysql_error());
    $row_news mysql_fetch_assoc($news);

    if (isset(
    $HTTP_GET_VARS['totalRows_news'])) {
      
    $totalRows_news $HTTP_GET_VARS['totalRows_news'];
    } else {
      
    $all_news mysql_query($query_news);
      
    $totalRows_news mysql_num_rows($all_news);
    }
    $totalPages_news ceil($totalRows_news/$maxRows_news)-1;

    $maxRows_kalender 1;
    $pageNum_kalender 0;
    if (isset(
    $HTTP_GET_VARS['pageNum_kalender'])) {
      
    $pageNum_kalender $HTTP_GET_VARS['pageNum_kalender'];
    }
    $startRow_kalender $pageNum_kalender $maxRows_kalender;

    mysql_select_db($database_SC_R_2005$SC_R_2005);
    $query_kalender "SELECT * FROM veranstaltungskalender ORDER BY datum ASC";
    $query_limit_kalender sprintf("%s LIMIT %d, %d"$query_kalender$startRow_kalender$maxRows_kalender);
    $kalender mysql_query($query_limit_kalender$SC_R_2005) or die(mysql_error());
    $row_kalender mysql_fetch_assoc($kalender);

    if (isset(
    $HTTP_GET_VARS['totalRows_kalender'])) {
      
    $totalRows_kalender $HTTP_GET_VARS['totalRows_kalender'];
    } else {
      
    $all_kalender mysql_query($query_kalender);
      
    $totalRows_kalender mysql_num_rows($all_kalender);
    }
    $totalPages_kalender ceil($totalRows_kalender/$maxRows_kalender)-1;

    $colname_inhalte "1";
    if (isset(
    $HTTP_GET_VARS['content_id'])) {
      
    $colname_inhalte = (get_magic_quotes_gpc()) ? $HTTP_GET_VARS['content_id'] : addslashes($HTTP_GET_VARS['content_id']);
    }
    mysql_select_db($database_SC_R_2005$SC_R_2005);
    $query_inhalte sprintf("SELECT * FROM inhalte WHERE inhalt_id = %s"$colname_inhalte);
    $inhalte mysql_query($query_inhalte$SC_R_2005) or die(mysql_error());
    $row_inhalte mysql_fetch_assoc($inhalte);
    $totalRows_inhalte mysql_num_rows($inhalte);
    ?>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html lang="de">
    <head>
    <title>SC Rothenhausen | Online-Portal</title>
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
    <meta http-equiv="Content-Style-Type" content="text/css">
    <?php include("_includes/meta.inc"); ?>
    <script type="text/javascript" language="JavaScript1.2" src="_scripte/stm31.js"></script>
    <?php include("_includes/stylesheets.inc"); ?>
    <link rel="stylesheet" type="text/css" media="screen" href="_stylesheets/master.css">
    <link rel="stylesheet" type="text/css" media="all" href="_stylesheets/fontstyles.css">
    <link rel="stylesheet" type="text/css" media="all" href="_stylesheets/sql_based_tables.css">
    <link rel="stylesheet" type="text/css" media="all" href="_stylesheets/colums.css">
    <link rel="stylesheet" type="text/css" media="all" href="_stylesheets/div_containers.css">
    <link rel="stylesheet" type="text/css" media="all" href="_stylesheets/archiv_articles.css">
    <link rel="stylesheet" type="text/css" media="print" href="_stylesheets/print.css">
    </head>

    <body>
    <div id="wrap_main">
    <div id="banner"></div>
    <div id="wrap_menu">
    <script type="text/javascript" language="JavaScript1.2" src="_scripte/menu_top.js"></script></div>

    <div id="wrap_body">
    <div id="wrap_margin">
    <div id="channelpic"><img src="gfx/channelpics/portal.jpg" alt=" " border="0"></div>
    <?php include("_includes/margin.inc"); ?><!-- Ende margin -->

    <div id="wrap_content">

    <?php if (isset($HTTP_GET_VARS['content_id'])) { // wenn inhalt_id gesetzt, zeige Datensatz an ?> 

    <?php if ($totalRows_inhalte 0) { // Show if recordset not empty ?>
    <h1><?php echo $row_inhalte['header']; ?></h1>
    <p class="lead"><?php echo $row_inhalte['lead']; ?></p>
    <?php // Show if recordset not empty ?>
    <?php $Artikel 
    $row_inhalte['content'];
    // $Artikel = ereg_replace("ß", "&szlig;", $Artikel);
    $Artikel ereg_replace("ö""&ouml;"$Artikel);
    $Artikel ereg_replace("ä""&auml;"$Artikel);
    $Artikel ereg_replace("ü""&uuml;"$Artikel);
    $Artikel ereg_replace("Ö""&Ouml;"$Artikel);
    $Artikel ereg_replace("Ä""&Auml;"$Artikel);
    $Artikel ereg_replace("Ü""&Uuml;"$Artikel);
    eval(
    '?>' .$Artikel'<?'); ?>

    <?php } else include("http://127.0.0.1/SC_Rothenhausen_2005/portal/_portal.html"); ?>

    </div><!-- Ende wrap_content --></div><!-- Ende wrap_body -->
    <?php include("_includes/footer.inc"); ?>
    </div><!-- Ende wrap_main --></body></html>
    <?php
    mysql_free_result
    ($news);

    mysql_free_result($kalender);

    mysql_free_result($inhalte);
    ?>
    Sooo, es folgt nochmal der Inhalt der besagten Tabellen-Zelle namens „content“:

    HTML-Code:
    <p>Damit Sie kein wichtiges Event verpassen, haben wir für Sie einen Online-Veranstaltungskalender bereitgestellt, so dass Sie sich jederzeit über aktuelle Termine und eventuelle kurzfristige Änderungen informieren können.<br><br>
    Über zahlreiches Erscheinen freuen wir uns schon jetzt.</p><br>
    
    <table width="520" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <th height="25" style="padding-left: 8px;"><b>Datum</b></th>
    <th height="25"><b>Veranstaltung</b></th>
    <th height="25"><b>Ort</b></th>
    </tr>
    <?php do { ?>
    <tr>
    <td height="5" colspan="3">&nbsp;</td>
    </tr>
    <tr>
    <td width="150" height="40" valign="top" style="padding-left: 8px;"><b><?php echo $row_kalender['wochentag']; ?>, <?php echo $row_kalender['datum']; ?></b><br> <?php echo $row_kalender['uhrzeit']; ?> </td>
    <td width="270" height="40" valign="top" >
    <p class="event"><?php echo $row_kalender['veranstaltung']; ?></p></td>
    <td width="100" height="40" valign="top"><?php echo $row_kalender['ort']; ?></td>
    </tr>
    <?php if (isset($row_kalender['bemerkung'])) { ?>
    <tr valign="middle">
    <td height="25" style="padding-left: 8px;"><em>Bemerkungen:</em></td>
    <td colspan="2" class="bemerkung"><?php echo $row_kalender['bemerkung']; ?></td>
    </tr>
    <?php } ?>
    <tr valign="middle">
    <td height="25" colspan="3" style="padding-left: 8px;"><hr size="1" noshade color="#cc0000"></td>
    </tr>
    <?php } while ($row_kalender = mysql_fetch_assoc($kalender)); ?></table>
    
    <?php } // Show if recordset not empty
    	else echo "<p>Es liegen zur Zeit keine gespeicherten Termine vor.</p>"; ?>
    
    <br><p class="hinweis">Leider können wir Irrtümer und eventuelle Änderungen nicht ausschließen.</p>
    So. Das war eigentlich alles. Leider habe ich das Ganze nur lokal laufen ... aber ich weiß echt nicht mehr weiter. Merkt man ja.

    Danke.

    Torben
    Moje zycie jest jak papier toaletowy: Dlugie, szare ... y do dupy!

  12. #12
    TP-Member Avatar von th_03
    Registriert seit
    Apr 2003
    Ort
    Ar... der Heide
    Beiträge
    81

    Red face Hat Sich Erledigt!

    Mein Gott, ist mir das peinlich. Wie kann man denn so verblödet sein? Es fehlte natürlich folgende Zeile am Anfang der „content“-Zelle in der Tabelle.

    PHP-Code:
    <?php if ($totalRows_kalender 0) { ?>
    Trotzdem gaanz lieben Dank für eure Hilfe. Ich werde mir jetzt erst mal einen Strick nehmen

    Gruß, Torben
    Moje zycie jest jak papier toaletowy: Dlugie, szare ... y do dupy!

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51