zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Php Code und Html Code in Variable ausführen?

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 22.01.2007, 17:40
Benutzerbild von The Sayan
Super-Sayajin
neuer user
Thread-Ersteller
 
Registriert seit: 09.07.2006
Beiträge: 45
The Sayan befindet sich auf einem aufstrebenden Ast
Standard Php Code und Html Code in Variable ausführen?

Ich habe das so ein Problem...
Ich will php code in einer Variable ausführen, dabei aber auch gleichzeitig Html drinn stehen haben. Das soll ugf. so aussehen:
PHP-Code:
$content="Du willst mit uns Kontakt aufnehmen? Schreibe deine Nachricht einfach in dieses Formular: <? include ("kontaktformular.php"); ?>";
Der Grund dafür ist, dass jede Unterseite einen eigenen Seitentitel haben soll - die index.php includet, je nach Parameter in der URL (z.B. index.php?site=kontakt, da wir inhalte/kontakt.htm includet).

In der Kontakt.html Seite steht dann:
PHP-Code:
$seitentitel="Kontakt";
$content="Du willst mit uns Kontakt aufnehmen? Schreibe deine Nachricht einfach in dieses Formular: <? include ("kontaktformular.php"); ?>";
Die Stitel Varibale kommt zwischen die <title> tags, währen die Content Variable in den Content Bereich des Designs kommt.
Ich hab jetzt schon so lange gesucht und gesucht, doch nie ne Möglichkeit gefunden, php Code in einer Variable auszuführen
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 22.01.2007, 18:04
Benutzerbild von robo47
Benutzer
neuer user
 
Registriert seit: 12.09.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 31
robo47 befindet sich auf einem aufstrebenden Ast
Standard

Eine saubere Lösung wäre es einfach ein Template-System wie Smarty oder ähnliches einzusetzen.

Unsauber und unter umständen gefährlich, geht es mit eval() damit kannst du beliebigen PHP-Code ausfähren, allerdings musst du hier ALLE Usereingaben wirklich sicher und sauber überprüfen, weil sonst jemand der es darauf anlegt auch PHP-Code in DEINEM System ausführen kann, ich würde dir definitiv zu einem Template-System raten, so hast du eine saubere Trennung von Code und Design und kannst eben mit Variablen und sogar Schleifen im Template arbeiten.

mfg
robo47
__________________
robo47
Developers Guide
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 22.01.2007, 18:05
Benutzerbild von Gumbo
XHTMLforum-Kenner
 
Registriert seit: 22.08.2004
Ort: Trier
Beiträge: 2.735
Gumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekannt
Standard

Du könntest die gesamte Ausgabe puffern und dann einfach die „title“-Tags ersetzen, etwa:
Code:
ob_start();
echo '<title></title>';

…

include …;

…

echo str_replace('<title></title>', '<title>'.$documentTitle.'</title>', ob_get_contents());
ob_end_clean();
__________________
Markus Wulftange
Mit Zitat antworten
  #4 (permalink)  
Alt 22.01.2007, 18:15
Benutzerbild von The Sayan
Super-Sayajin
neuer user
Thread-Ersteller
 
Registriert seit: 09.07.2006
Beiträge: 45
The Sayan befindet sich auf einem aufstrebenden Ast
Standard

Gehört
ob_start();
echo '<title></title>';
in die Dateien in den Ordner inhalte/ ?

und
echo str_replace('<title></title>', '<title>'.$documentTitle.'</title>', ob_get_contents());
ob_end_clean();
in die index.php, wo sich normalerweise die titel Tags befinden?
Mit Zitat antworten
  #5 (permalink)  
Alt 22.01.2007, 18:20
Benutzerbild von Gumbo
XHTMLforum-Kenner
 
Registriert seit: 22.08.2004
Ort: Trier
Beiträge: 2.735
Gumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekannt
Standard

Alles gehört in die „index.php“-Skriptdatei. Mit der „include“-Anweisung kannst du dann die einzelnen Skriptdateien einbeziehen, in denen dann auch die Dokumenttitel bestimmt werden.
__________________
Markus Wulftange
Mit Zitat antworten
  #6 (permalink)  
Alt 22.01.2007, 18:27
Benutzerbild von The Sayan
Super-Sayajin
neuer user
Thread-Ersteller
 
Registriert seit: 09.07.2006
Beiträge: 45
The Sayan befindet sich auf einem aufstrebenden Ast
Standard

Sorry für meine Unwissenheit, aber gehört alles unmodifiziert vor den <html> Tag?
Und die einzelnen Scriptdateien:
$documentTitle="Seitentitel"; ?
Mit Zitat antworten
  #7 (permalink)  
Alt 22.01.2007, 18:42
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.035
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

Zitat:
Zitat von robo47 Beitrag anzeigen
Eine saubere Lösung wäre es einfach ein Template-System wie Smarty oder ähnliches einzusetzen.

Unsauber und unter umständen gefährlich, geht es mit eval() damit kannst du beliebigen PHP-Code ausfähren, allerdings musst du hier ALLE Usereingaben wirklich sicher und sauber überprüfen, weil sonst jemand der es darauf anlegt auch PHP-Code in DEINEM System ausführen kann, ich würde dir definitiv zu einem Template-System raten, so hast du eine saubere Trennung von Code und Design und kannst eben mit Variablen und sogar Schleifen im Template arbeiten.
Smarty halte ich hier für absolut überdimensioniert. Außerdem muss man damit auch erstmal umgehen können (davon abgesehen, dass ich persönlich wenig von smarty halte).

Die Trennung von "Code und Design" ist überhaupt nicht erstrebenswert, bzw. das ist unmöglich. Was du wahrscheinlich meinst ist die Trennung von Ausgabe- und Businesslogik. Genau das macht smarty nicht konsequent und führt beinahe eine neue Sprache ein mit der doch sehr umfangreichen eigenen Syntax (das ist ein Punkt warum ich smarty nicht mag).

Nur mal um meinen Senf dazu zu geben
Mit Zitat antworten
  #8 (permalink)  
Alt 22.01.2007, 18:58
Benutzerbild von robo47
Benutzer
neuer user
 
Registriert seit: 12.09.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 31
robo47 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von inta Beitrag anzeigen
Smarty halte ich hier für absolut überdimensioniert. Außerdem muss man damit auch erstmal umgehen können (davon abgesehen, dass ich persönlich wenig von smarty halte).
Smarty ist oftmals überdimensioniert, aber gerade die Basics finde ich kann man damit sehr gut lernen und ich finde es recht einfach einzusetzen.


Zitat:
Genau das macht smarty nicht konsequent und führt beinahe eine neue Sprache ein mit der doch sehr umfangreichen eigenen Syntax (das ist ein Punkt warum ich smarty nicht mag).
Ja da hast du zum Teil wirklich recht, aber wie oben schon geschrieben, ist es wie ich finde recht einfach zu verstehen und einzusetzen und inwieweit man die Trennung zwischen den Schichten macht ist halt eine Sache des persönlichen Geschmacks, auf jeden Fall finde ich ist Smarty oder ähnliches einem HTML + PHP Mischmasch vorzuziehen.
__________________
robo47
Developers Guide
Mit Zitat antworten
  #9 (permalink)  
Alt 22.01.2007, 19:06
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.035
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

Zitat:
Zitat von robo47 Beitrag anzeigen
[...] auf jeden Fall finde ich ist Smarty oder ähnliches einem HTML + PHP Mischmasch vorzuziehen.
Da hast du auf jeden Fall recht. Alles in einer Datei ist eine unglückliche Lösung, aber für Anfänger wohl erstmal die einfachste.

Ich bin nach meinem Ausflug mit smarty wieder zu einer reinen HTML+PHP Lösung zurückgekehrt, die allerdings Ausgabe und Logik strikt trennt (bzw. ich trenne sie, natürlich kann man auch da die HTML-Dateien mit php vollpflastern, aber das ist nicht im Sinne des Erfinders).
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 22.01.2007, 20:59
Benutzerbild von Gumbo
XHTMLforum-Kenner
 
Registriert seit: 22.08.2004
Ort: Trier
Beiträge: 2.735
Gumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekannt
Standard

Notiere das „ob_start()“ am Anfang des Skriptes, am besten noch vor jeglicher Ausgabe, und das andere am Ende des Skriptes. Dazwischen kann wie gewöhlich das Dokument generiert werden und schließlich mit der „$documentTitle“-Variable ein Dokumenttitel bestimmt werden.
__________________
Markus Wulftange
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

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 aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wie kann ich einen php more tag code selber schreiben??? stakouman Grafik, Design, Typografie 0 24.05.2011 13:43
PHP in HTML 1of3 Serveradministration und serverseitige Scripte 3 29.04.2007 15:51
PHP Code aus einer Datenbank beziehen und ausführen? Zen5656 Serveradministration und serverseitige Scripte 3 03.09.2006 17:20
HTML Code auf Webseite darstellen Lloyd Larkin Offtopic 7 18.07.2006 17:15
Validierungs Problem mit PHP Code débutant (X)HTML 3 01.06.2006 16:08


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:02 Uhr.