php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 11-06-2009, 16:56
Benni16
 Registrierter Benutzer
Links : Onlinestatus : Benni16 ist offline
Registriert seit: May 2009
Ort: Bayern
Beiträge: 12
Benni16 befindet sich auf einem aufstrebenden Ast
Benni16 eine Nachricht über ICQ schicken
Standard Datensätze in html-template auslesen

Hey,

ich habe ein kleines script für news-einträge geschrieben. es geht alles bis dahin, wo ich die datensätze aus mysql in ein template.html auslesen möchte.

hier die display.php für die anzeige:

PHP-Code:
<html>
<head>
<title>Newssystem</title>
</head>
<body>
<h2>Newssystem</h2>
<a href="newsentry.php">News-Eintrag hinzufuegen</a><br><br>
<?php
// Logindaten
include ("connect.php");
// Templatefunktionen
include ("templatefunc.php");
$proseite 10;
$db  newssystem;
 
$con mysql_connect($host$user$pass) or die ("<b>Keine</b> Verbindung zum MySQL-Server möglich.");
mysql_select_db($db$con) or die (mysql_error());
$result mysql_query("SELECT * FROM news ORDER BY date");
$Anzahl mysql_num_rows(mysql_query("SELECT * FROM news ORDER BY date"$con));
 
// Anzeige von Anzahl der Einträge
$anzahl_eintraege mysql_num_rows($result);
echo 
"<p>Anzahl der News-Einträge: $anzahl_eintraege </p>";
 
// Daten aus Datenbank holen und ausgeben im Template
for($i 0$i mysql_num_rows($result); $i++)
{
while(
$row mysql_fetch_array($result))
  {
eval (
"dooutput(\"".gettemplate("news")."\");"); 
{
echo 
$template;
}
  }
}
 
// 10 Einträge pro Seite
 
if($Anzahl $proseite)
{
    
$Seiten intval($Anzahl/$proseite);
    if(
$Anzahl%$proseite)
    {
        
$Seiten++;
    }
    echo
"Seite ";   
}
for(
$i 1$i <= $Seiten$i++)
{
    echo 
"<a href=\"display.php?AktuelleSeite=", ($i-1)*$proseite,"\">$i</a>&nbsp;";
}
 
mysql_close($con);
?>

ich lasse über die gettemplate function das news.html template zwischen die while schleife einbauen.

news.html:


PHP-Code:
<html>
<head>
<meta http-equiv="Content-Language" content="de">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Newssystem</title>
</head>
<body>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: 
collapse" bordercolor="#111111" width="80%" id="AutoNumber1" height="232">
  <tr>
    <td width="100%" height="19" valign="top" style="border-left: 1px solid #111111;<br>
 border-right: 1px solid #111111; <br>
border-top-style: solid; border-top-width: 1; border-bottom-style: solid; 
border-bottom-width: 1"><?php echo $row[usname]; ?></td>
  </tr>
  <tr>
    <td width="100%" height="19" valign="top" style="border-left-color: #111111; 
border-left-width: 1; border-right-color:<br>
 #111111; border-right-width: 1"><?php echo $row[headline]; ?></</td>
  </tr>
  <tr>
    <td width="100%" height="172" valign="top" style="border-left: 1px solid #111111;<br>
 border-right: 1px solid #111111; <br>
border-top-style: solid; border-top-width: 1; border-bottom-style: solid;
 border-bottom-width: 1"><br><?php echo $row[content]; ?></</td>
  </tr>
</table>
</body>
</html>
ich habe bis jetzt 10 einträge in der datenbank gespeichert und wenn ich die display.php aufrufe,
werden mir wiederrum 10 html-tabellen angezeigt.. ihre felder sind aber weiß

der quelltext der display.php zeigt mir bei zb der ersten tabelle folgendes:

HTML-Code:
<html>
<head>
<meta http-equiv="Content-Language" content="de">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Newssystem</title>
</head>
<body>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" 
bordercolor="#111111" width="80%" id="AutoNumber1" height="232">
  <tr>
    <td width="100%" height="19" valign="top" style="border-left: 1px solid #111111;<br>
 border-right: 1px solid #111111;<br>
 border-top-style: solid; border-top-width: 1; border-bottom style: solid; 
border-bottom-width: 1"><?php echo Hans; ?></td>
  </tr>
  <tr>
    <td width="100%" height="19" valign="top" style="border-left-color: #111111; 
border-left-width: 1; border-right-color: #111111;<br>
 border-right-width: 1"><?php echo Neue Seite; ?></td>
  </tr>
  <tr>
    <td width="100%" height="172" valign="top" style="border-left: 1px solid #111111;<br>
 border-right: 1px solid #111111;<br>
 border-top-style: solid; border-top-width: 1; borderbottom-style: solid;<br> 
border-bottom-width: 1"><?php echo Hier ist unsere neue Seite!; ?></td>
  </tr>
</table>
</body>
</html>

im quelltext werden die daten angezeigt..

hat jemand eine idee an was das liegen könnte

greeZ

Geändert von Benni16 (20-08-2009 um 15:16 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 11-06-2009, 17:09
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

brich bitte mal deinen quellcode um. und dann poste die gettemplate funktion.

peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #3 (permalink)  
Alt 11-06-2009, 17:20
Benni16
 Registrierter Benutzer
Links : Onlinestatus : Benni16 ist offline
Registriert seit: May 2009
Ort: Bayern
Beiträge: 12
Benni16 befindet sich auf einem aufstrebenden Ast
Benni16 eine Nachricht über ICQ schicken
Standard

Hier ist die templatefunc.php


PHP-Code:
<?php
function gettemplate($template,$endung="html")
{
$templatefolder "templates";
return 
str_replace("\"","\\\"",implode("",file($templatefolder."/".$template.".".$endung)));
}
function 
dooutput($template
{
echo 
$template;
}
?>


wie kann ich hier den quellcode umbrechen?

greeZ

Geändert von Benni16 (20-08-2009 um 15:16 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 11-06-2009, 17:33
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
wie kann ich hier den quellcode umbrechen?
indem du auf "ändern" klickst und dann in deinen codeababschnitten ein paar manuelle umbrüche einbaust.

zu deinem problem. du setzt hier eval völlig falsch ein. das siehts du am ergebnis:
PHP-Code:
<?php echo Hans?>
da sollte nur Hans stehen. tipp, arbeite mit platzhalter wie z.b. #HEADLINE# und nimm dann ein str_replace mit den werten(!) vor.

peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #5 (permalink)  
Alt 11-06-2009, 17:56
Benni16
 Registrierter Benutzer
Links : Onlinestatus : Benni16 ist offline
Registriert seit: May 2009
Ort: Bayern
Beiträge: 12
Benni16 befindet sich auf einem aufstrebenden Ast
Benni16 eine Nachricht über ICQ schicken
Standard

also meinst du das dann so?:




PHP-Code:
$usname $row['usname'];
 
$comment str_replace("$usname""#USNAME#" alt="usname">", $comment); 
Mit Zitat antworten
  #6 (permalink)  
Alt 11-06-2009, 18:01
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

fast. wenn schon, dann z.b. so:
PHP-Code:
$comment str_replace('#USNAME#'$usname$comment); 
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #7 (permalink)  
Alt 11-06-2009, 18:50
Benni16
 Registrierter Benutzer
Links : Onlinestatus : Benni16 ist offline
Registriert seit: May 2009
Ort: Bayern
Beiträge: 12
Benni16 befindet sich auf einem aufstrebenden Ast
Benni16 eine Nachricht über ICQ schicken
Standard

ich habe jetzt folgenden code schnipsel zusammengestellt:

PHP-Code:
$usname   $row[usname];
$headline $row[headline];
$content  $row[content];
 
$us str_replace('#USNAME#'$usname$us="#USNAME#"); 
$he str_replace('#HEADLINE#'$headline$he="#HEADLINE#"); 
$co str_replace('#CONTENT#'$content$co="#CONTENT#"); 

komme aber trotzdem nicht weiter :\


habe ihn so in die news.html eingetragen:

HTML-Code:
<?php
$usname   = $row[usname];
$headline = $row[headline];
$content  = $row[content];
 
$us = str_replace('#USNAME#', $usname, $us="#USNAME#"); 
$he = str_replace('#HEADLINE#', $headline, $he="#HEADLINE#"); 
$co = str_replace('#CONTENT#', $content, $co="#CONTENT#");
?>
<html>
<head>
<meta http-equiv="Content-Language" content="de">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Newssystem</title>
</head>
<body>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="80%" id="AutoNumber1" 
height="232">
  <tr>
    <td width="100%" height="19" valign="top" style="border-left: 1px solid #111111;<br>
 border-right: 1px solid #111111; border-top-style: <br>
solid; border-top-width: 1;<br> border-bottom-style: solid; border-bottom-width: 1"><?php echo "$us" ?></td>
  </tr>
  <tr>
    <td width="100%" height="19" valign="top" style="border-left-color: #111111;<br>
 border-left-width: 1;<br> border-right-color: #111111; 
border-right-width: 1"><?php echo "$he" ?></td>
  </tr>
  <tr>
    <td width="100%" height="172" valign="top" style="border-left: 1px solid #111111;<br>
 border-right: 1px solid #111111; border-top-style: <br>
solid; border-top-width: 1;<br> border-bottom-style: solid; border-bottom-width: 1"><br><?php echo "$co" ?></td>
  </tr>
</table>
</body>
</html>

im quelltext sieht dass dann so aus:


HTML-Code:
<html>
<head>
<title>Newssystem</title>
</head>
<body>
<h2>Newssystem</h2>
<a href="newsentry.php">News-Eintrag hinzufuegen</a><br><br>
<p>Anzahl der News-Einträge: 1 </p><?php
 
   = Hans;
 = Neue Seite!;
  = Hey,
 
hier ist unsere neue Seite <img src="Smileys/grins.gif" alt=":-)">
 
<img src="Smileys/daumenhoch.gif" alt="Lol"> 
 
greeZ;
 
 
 = str_replace('#USNAME#', , ="#USNAME#"); 
 = str_replace('#HEADLINE#', , ="#HEADLINE#"); 
 = str_replace('#CONTENT#', , ="#CONTENT#");
 
?>
 
<html>
<head>
<meta http-equiv="Content-Language" content="de">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Newssystem</title>
</head>
<body>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="80%" id="AutoNumber1" height="232">
  <tr>
    <td width="100%" height="19" valign="top" style="border-left: 1px solid #111111; <br>
border-right: 1px solid #111111; border-top-style:<br> 
solid; border-top-width: 1; border-bottom-style: solid; border-bottom-width: 1"><?php echo "" ?></td>
  </tr>
  <tr>
    <td width="100%" height="19" valign="top" style="border-left-color: #111111;<br>
 border-left-width: 1; border-right-color: #111111;<br>
border-right-width: 1"><?php echo "" ?></td>
  </tr>
  <tr>
    <td width="100%" height="172" valign="top" style="border-left: 1px solid #111111; border-right: 1px solid #111111;<br> 
border-top-style: solid; border-top-width: 1; border-bottom-style: solid;<br>
 border-bottom-width: 1"><br><?php echo "" ?></td>
  </tr>
</table>
</body>
</html>
 

und auf der leeren seite so:

HTML-Code:
[B]Newssystem[/B]
 
News-Eintrag hinzufuegen
 
 
Anzahl der News-Einträge: 1 
 
 greeZ; = str_replace('#USNAME#', , ="#USNAME#"); = str_replace('#HEADLINE#', , ="#HEADLINE#"); = str_replace('#CONTENT#', , ="#CONTENT#"); ?> 

liegt es daran dass ich das template mit "echo $template;" in der display.php ausgeben lasse?

Geändert von Benni16 (20-08-2009 um 15:17 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 11-06-2009, 18:58
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

nein. in der news.html setzt du die platzhalter à la #USER#, also so:
PHP-Code:
<h1>#HEADLINE#</h1> 
und in der funktion gettemplate holst du dir die datei und ersetzt die platzhalter:
PHP-Code:
function gettemplate()
{
  
$headline 'Irgendwas';
  
$templ file_get_contents('news.html');
  
$content str_replace ('#HEADLINE#'$headline$templ);
  echo 
$content;

und bitte brich deinen code um. ich habe dir ja schon gesagt wie das geht.

peter

btw: arbeite mit einer vernünftigen doctype-definition und vergiss auch diese layout-tabellen.
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #9 (permalink)  
Alt 11-06-2009, 19:46
Benni16
 Registrierter Benutzer
Links : Onlinestatus : Benni16 ist offline
Registriert seit: May 2009
Ort: Bayern
Beiträge: 12
Benni16 befindet sich auf einem aufstrebenden Ast
Benni16 eine Nachricht über ICQ schicken
Standard

habe die umbrüche schon gemacht

ok habe das prinzip jetzt verstanden, doch immernoch holt er keine datensätze aus der tabelle:

PHP-Code:
<?php
function gettemplate() 

 
  
$headline $row['headline']; 
  
$templ file_get_contents('news.html'); 
  
$content str_replace ('#HEADLINE#'$headline$templ); 
  echo 
$content;  
}  
?>

wenn ich $headline = neu; mache, dann wird auch "neu" angezeigt.. das funktioniert ja, aber wie gesagt er holt die datensätze nicht aus mysql
Mit Zitat antworten
  #10 (permalink)  
Alt 11-06-2009, 19:50
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Benni16 Beitrag anzeigen
aber wie gesagt er holt die datensätze nicht aus mysql
du sollst den code nicht einfach kopieren sondern mitdenken! wo holst du dir die datensätze? in der funktion? wohl nicht. also wenn du das wo anders machst, dann musst du die werte schon an die funktion als parameter übergeben und dort verarbeiten.

peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #11 (permalink)  
Alt 12-06-2009, 13:20
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist gerade online
Registriert seit: Mar 2008
Beiträge: 3.593
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Das Template hat _nichts_ mit der Datenbank zu tun. Hol dir die Werte vorher, schreib sie in eine Variable und übergib diese Variable an die Funktion, die dir dein Template ausgibt.

PHP-Code:
function gettemplate($tpl_file, array $tpl_vars)

    
$tpl_content file_get_contents($tpl_file);
    foreach (
$tpl_vars as $name => $value) {
        
$content str_replace ('#' $name '#'$value$tpl_content); 
    }
    return 
$content;  

PHP-Code:
$vars = array();
$vars['HEADLINE'] = 'blu bla blub';

echo 
gettemplate('news.html'$vars); 

Geändert von h3ll (12-06-2009 um 13:23 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 20-08-2009, 04:04
Benni16
 Registrierter Benutzer
Links : Onlinestatus : Benni16 ist offline
Registriert seit: May 2009
Ort: Bayern
Beiträge: 12
Benni16 befindet sich auf einem aufstrebenden Ast
Benni16 eine Nachricht über ICQ schicken
Standard kapiere es immernoch nicht

hey,

hatte wieder etwas zeit für php und grabe den álten thread heraus, weil ich es immernoch nicht hinbekommen habe..

mein template news.html:

Code:
<html>
<head>
<meta http-equiv="Content-Language" content="de">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Newssystem</title>
</head>
<body>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: <br>
collapse" bordercolor="#111111" width="80%" id="AutoNumber1" height="232"><br>
  <tr>
    <td width="100%" height="19" valign="top" style="border-left: 1px solid #111111; border-right: 1px solid #111111; 
<br> border-top-style: solid; border-top-width: 1; border-bottom-style: solid; border-bottom-width: 1">#USNAME#</td><br>
  </tr>
  <tr>
    <td width="100%" height="19" valign="top" style="border-left-color: #111111; border-left-width: 1;<br>
 border-right-color: #111111; border-right-width: 1">#HEADLINE#</td><br>
  </tr>
  <tr>
    <td width="100%" height="172" valign="top" style="border-left: 1px solid #111111; border-right: 1px solid #111111;<br>
 
border-top-style: solid; border-top-width: 1; border-bottom-style: solid; border-bottom-width: 1"><br>#MESSAGE#</td><br>
  </tr>
</table>
</body>
</html>

meine templatefunc.php

PHP-Code:
<?php
 
function gettemplate($template$endung="html"$gesamt)
{
$templatefolder "templates";
return 
str_replace("\"","\\\"",implode("",file($templatefolder."/".$template.".".$endung)));
}
function 
dooutput($template
{
foreach(
$gesamt as $wert => $inhalt)
echo 
str_replace ('#' $wert '#'$inhalt$template);
}
?>

meine display.php

PHP-Code:
mysql_select_db($db$con) or die (mysql_error());
$result mysql_query("SELECT * FROM news ORDER BY date DESC");
$Anzahl mysql_num_rows(mysql_query("SELECT * FROM news ORDER BY date DESC"$con));
 
// Anzeige von Anzahl der Einträge
$anzahl_eintraege mysql_num_rows($result);
echo 
"<p>Anzahl der News-Einträge: $anzahl_eintraege </p>";
 
// Daten aus Datenbank holen und Ausgabe im Template
for($i 0$i mysql_num_rows($result); $i++)
{
while(
$row mysql_fetch_array($result))
  {
$message $row[content];
$usname $row[usname];
$headline $row[headline];
$gesamt = array($message$usname$headline);
  }
eval (
"dooutput(\"".gettemplate("news")."\");"); 
{
echo 
$template;
}


folgendes: wenn ich als test auf der display.php unten echo $message; schreibe, werden auch die datensätze aus mysql angezeigt.. nun habe ich die datensätze in variabeln geschrieben und in ein array gepackt, das ich dann der funktion zur verfügung stellen will..

hier mein 1. probelm, wie kann ich das array der funktion übergeben?

als einzigstes bekomme ich angezeigt:

PHP-Code:
[B]Newssystem[/B]
 
News-Eintrag hinzufuegen
 
 
Anzahl der News
-Einträge


wenn ich in der templatefunc statt foreach ganz normal eine variabel mit $message = hey; setzte, wird das template angezeigt und am platzhalter #MESSAGE# steht dann hey.

warum funktioniert das nicht mit den datensätzen aus der tabelle?

ich verstehe nicht wie ich die variabeln in der funktion weiterverarbeiten kann..

ich danke schonmal für eure hilfe

greeZ

Geändert von Benni16 (20-08-2009 um 04:08 Uhr)
Mit Zitat antworten
  #13 (permalink)  
Alt 20-08-2009, 04:29
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hi Benny,

da die Frage recht komplex ist, der Code jegliche Einrückung vermissen lässt und auch sonst unaufgeräumt und mit Redundanzen gespickt ist, habe ich ihn lediglich überflogen. Könnte es daran liegen, dass in der markierten Zeile $gesamt gar nicht gesetzt ist? Das hätte man doch aber merken müssen, da muss doch eine Fehlermeldung kommen oder ignorierst du die???

PHP-Code:
function gettemplate($template$endung="html"$gesamt)
{
$templatefolder "templates";
return 
str_replace("\"","\\\"",implode("",file($templatefolder."/".$template.".".$endung)));
}
function 
dooutput($template
{
foreach(
$gesamt as $wert => $inhalt// ##MARKE##
echo str_replace ('#' $wert '#'$inhalt$template);

Bevor du die nächste Anschlussfrage stellst, räum bitte deinen Code auf. Nicht nur in unserem Interesse, sondern auch in deinem, um nicht noch mehr Fehler einzubauen oder durch Altlasten hervorzurufen. Rücke anschließend den Code bitte ein (hauptsächlich in unserem Interesse).

Gruß,

Anja

PS: Noch ne alte Weisheit: "If eval() is the answer, you're almost certainly asking the wrong question." -- Rasmus Lerdorf

Geändert von AmicaNoctis (20-08-2009 um 04:33 Uhr)
Mit Zitat antworten
  #14 (permalink)  
Alt 20-08-2009, 14:06
Benni16
 Registrierter Benutzer
Links : Onlinestatus : Benni16 ist offline
Registriert seit: May 2009
Ort: Bayern
Beiträge: 12
Benni16 befindet sich auf einem aufstrebenden Ast
Benni16 eine Nachricht über ICQ schicken
Standard

hey,

also hab das alles etwas durchforstet und bin über meinen code gegangen..

nun hab ich versucht, das array in eine session zu speichern und diese dann wiederrum ausgeben zu lassen.
das funktioniert auch, doch er ließt immer nur einen wert, statt 3 werte aus dem array aus.

nochmal die codes:


templatefunc.php:


PHP-Code:
<?php
ini_set
('display_errors'1);  
error_reporting(E_ALL);
function 
gettemplate($template$endung="html")
{
$templatefolder "templates";
return 
str_replace("\"","\\\"",implode("",file($templatefolder."/".$template.".".$endung)));
}
function 
dooutput($template
{
foreach(
$_SESSION['gesamt'] as $name => $value
{
     
$content str_replace ('#' $name '#'$value$template); 
    }
    echo 
$content;  
}
?>


display.php:

PHP-Code:
mysql_select_db($db$con) or die (mysql_error());
$result mysql_query("SELECT * FROM news ORDER BY date DESC");
$Anzahl mysql_num_rows(mysql_query("SELECT * FROM news ORDER BY date DESC"$con));
 
// Anzeige von Anzahl der Einträge
$anzahl_eintraege mysql_num_rows($result);
echo 
"<p>Anzahl der News-Einträge: $anzahl_eintraege </p>";
 
// Daten aus Datenbank holen und Ausgabe im Template
for($i 0$i mysql_num_rows($result); $i++)
{
while(
$row mysql_fetch_array($result))
  {
$vars               =  array(); 
$vars['HEADLINE']   =  $row['headline'];
$vars['USNAME']     =  $row['usname'];
$vars['MESSAGE']    =  $row['content'];
$_SESSION['gesamt'] =  $vars
  }
eval (
"dooutput(\"".gettemplate("news")."\");"); 
{
echo 
$template;  
}


im template news.html bekomme ich dann in der tabelle nur den platzhalter #MESSAGE# ersetzt. #USNAME# und #HEADLINE# im gegensatz nicht.

so sieht die Seite aus:




thx schonmal

Geändert von Benni16 (20-08-2009 um 14:55 Uhr)
Mit Zitat antworten
  #15 (permalink)  
Alt 20-08-2009, 14:10
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist gerade online
Registriert seit: Mar 2008
Beiträge: 3.593
h3ll befindet sich auf einem aufstrebenden Ast
Standard

eval() ist böse. Lass den Blödsinn.

Und rück deinen PHP-Code ordentlich ein, wenn du willst, dass ihn andere Leute lesen können.
Mit Zitat antworten
Antwort

Lesezeichen


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Cache_Lite und HTML Template derbo PHP Developer Forum 3 03-04-2007 13:04
Can't locate HTML/Template.pm SOB22 Archiv / Trash 1 20-09-2006 20:02
template navigation auslesen zophake PHP Developer Forum 3 27-07-2006 18:42
html per template einschliessen Putterfly IT-Security 3 27-09-2003 23:04
Datensätze auslesen + Datensätze bearbeiten Caine PHP Developer Forum 5 22-07-2002 03:18

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:03 Uhr.