Komisches Problem
Markus Weber
- php
0 rob0 derkoelschejung0 Markus Weber0 derkoelschejung0 Steel0 Markus Weber0 Steel0 Markus Weber0 Steel
2 wahsaga
Hallo an Alle,
in meinem Script steht
<?php $titel="Hier der Titel"; include("header.php"); ?>.
Im header.php steht dann mehrmals <?php echo $titel ?>
Nun müsste doch in der header.php überall "Hier ist der Titel" stehen. Aber da ist alles leer.
Weiß jemand woran das liegen könnte?
Gruß, Markus
Hi!
Weiß jemand woran das liegen könnte?
Nein.
Da du uns deinen Code vorenthältst, wird dir das niemand sagen können.
Schöner Gruß,
rob
Da du uns deinen Code vorenthältst, wird dir das niemand sagen können.
Sämtlicher Code steht im Text...
Da du uns deinen Code vorenthältst, wird dir das niemand sagen können.
Sämtlicher Code steht im Text...
Nachdem ich jetzt nochmal genauer deine Frage gelesen habe glaub ich Du hast nen Denkfehler... Durch das "include" bindest Du die Datei header.php ein - sie kann also nur inhalte liefern und keine schicken...
versuch den code den ich Dir zuerst geantwortet habe und spiel damit - dann kommste dahinter ;)
Gruß
Tom
Hallo an Alle,
in meinem Script steht
<?php $titel="Hier der Titel"; include("header.php"); ?>.Im header.php steht dann mehrmals <?php echo $titel ?>
Nun müsste doch in der header.php überall "Hier ist der Titel" stehen. Aber da ist alles leer.
Weiß jemand woran das liegen könnte?
Gruß, Markus
Hm... ist wirklich komisch; bei mir funktionierts so...
<?php $titel="Hier der Titel"; include("header.php"); ?>
<?php echo $titel ?>
<?php echo $titel ?>
<?php echo $titel ?>
<?php echo $titel ?>
<?php echo $titel ?>
<?php echo $titel ?>
Möchtest Du den Titel als Titel der Website angezeigt haben - dann so:
Inhalt der Datei header.php:
<?php $titel = "Titel der Seite"; ?>
Aufruf als Titel und Titel im Text von seite.php:
<html>
<head>
<?php include("header.php"); ?>
<title><?php echo $titel ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<?php echo $titel ?>
<body>
</body>
</html>
so geht´s...
hoffe ich konnte helfen
Gruß´
Tom
Hmmm...
also es handelt sich nur um zwei Dateien.
seite.php und header.php.
In seite.php steht oben <?php $titel="Hier der Titel"; include("header.php"); ?> und in header.php z.B: <title><?php echo $title; ?></title>.
Der Witz daran, ist ja dass u.A. bei seite.php und die bald folgende Seite seite2.php verschiedene <title> eingegeben werden können.
Hmmm...
also es handelt sich nur um zwei Dateien.
seite.php und header.php.In seite.php steht oben <?php $titel="Hier der Titel"; include("header.php"); ?> und in header.php z.B: <title><?php echo $title; ?></title>.
Der Witz daran, ist ja dass u.A. bei seite.php und die bald folgende Seite seite2.php verschiedene <title> eingegeben werden können.
Hm... Check ich jetzt nicht wirklich was Du vorhast ;)
Versuch mal genau zu beschreiben was Du als Ziel haben willst! Wenn Du auf seite2.php einen anderen String aufrufen willst nenn den String in der datei header.php einfach titel2 = "Titel 2"; und im echo dann echo $title2;
Aber mit welchem Ziel strickst Du daran?
Ich weiß nicht ob das nicht noch mehr verwirren würde wenn ich es genau beschreibe ;-)
Das ist ein Teil von einem CMS. seite.php wird automatisch generiert und enthält dann
<?php $titel="Seitentitel"; include("header.php"); ?>
Inhalt der Seite
Wenn ich dieses $titel="Seitentitel"; an den Anfang des Headers setze funktioniert es natürlich. Nur halt nicht wenn in seite.php <?php $titel="Hier der Titel"; include("header.php"); ?> steht.
Hi!
Das ist ein Teil von einem CMS.
Als ich danach gefragt habe, war es eben noch der vollständige Code und nicht ein Teil von irgendwas...
Der Code ist, so wie du ihn gepostet hast, fehlerfrei - mit Ausnahme des Tippfehlers ($titel/$title).
Wenn das also nicht funktioniert, dann muß es an etwas anderem liegen.
Eventuell wird diese Variable irgendwo wieder gelöscht oder überschrieben?
Schöner Gruß,
rob
Das ist eben der Code der generiert wurde.
So steht es in der Datei um die es geht. Das CMS hat nach der Generierung gar nichts mehr damit zu tun.
Könnte es vielleicht daran liegen dass er mit
$oben="<?php $title = "$titel"; include("$header"); ?>";
htmlspecialchars_decode($oben)
eingefügt wurde?
Wie ich gerade in der Antwortet angemerkt habe, wird der Code in html-zeichen umgewandelt. Er steht zwar dann richtig in der Datei, wird aber falsch interpretiert.
Dann habe ich eine neue Frage :-)
Wie muss ich die Zeile
<?php $titel="$titel"; include("$header"); ?>
ändern, damit sie per PHP in eine Textdatei geschrieben werden kann?
Ich dachte der Weg mit der decodierung wäre eigentlich normal :-(
Hi!
wird der Code in html-zeichen umgewandelt. Er steht zwar dann richtig in der Datei,
Nein. Er steht nicht "richtig" in der Datei. Wenn du über den Browser in den Quellcode einer PHP-Datei schaust, dann kannst du keinen PHP-Code sehen.
Wenn das der Fall ist, dann läuft was ganz schön schief.
PHP läuft serverseitig und generiert dann das HTML-Dokument. Beim Browser kommt ausschließlich HTML an.
wird aber falsch interpretiert.
Wird von PHP gar nicht interpretiert!
Dann habe ich eine neue Frage :-)
Wie muss ich die Zeile
<?php $titel="$titel"; include("$header"); ?>
ändern, damit sie per PHP in eine Textdatei geschrieben werden kann?
Das kann ich dir nicht sagen. Ich weiß zuwenig über dein CMS.
Eigentlich müßte es ausreichen, wenn du diesen Code - so wie er ist - in eine PHP-Datei schreibst.
Wenn du das in einer Template-Datei stehen hast, dann wird diese sicherlich per PHP eingelesen und verarbeitet. Da hat PHP-Code dann sicherlich nichts zu suchen.
Schöner Gruß,
rob
Ich hab das jetzt so verstanden, das ein anderes Script diese erste Datei generiert. Erst danach wird die genereirte Datei gelesen und interpretiert. Oder liege ich falsch und rob liegt richtig?
Denn das include wird ja scheinbar interpretiert, also muss das script lauffaehig sein.
Es waere ja viel einfacher, wenn wir hier die wichtigen Stellen als Code vorliegen haetten... *zaunpfahl wink*
Hallo,
Wie muss ich die Zeile
<?php $titel="$titel"; include("$header"); ?>
ändern, damit sie per PHP in eine Textdatei geschrieben werden kann?
Wenn es um die Schreibweise innerhalb von PHP-dateien geht, müßte vmtl.
das ? auskommentiert werden. Zerlegen von ?> geht auch, z.B.:
echo '<?xml version="1.0" encoding="UTF-8"'.'?'.'>';
Grüsse
Cyx23
In seite.php steht oben <?php $titel="Hier der Titel"; include("header.php"); ?> und in header.php z.B: <title><?php echo $title; ?></title>.
Der Witz daran, ist ja dass u.A. bei seite.php und die bald folgende Seite seite2.php verschiedene <title> eingegeben werden können.
ich will ja nicht meckern, aber in Deinem ersten Post hast du noch geschrieben
<?php $titel="Hier der Titel"; include("header.php"); ?>
<?php echo $titel; ?>
Da hab ich auch nicht verstanden, warums nicht geht.
Und hier steht ploetzlich
<?php $titel="Hier der Titel"; include("header.php"); ?>
<title><?php echo $title; ?></title>.
Wenn der neue Code das ist, was du in deinen Dateien hast wunderts mich nicht. Ich wuerde ienfach die gleiche Vartiable nehmen... :D
Das waren alles nur Beispiele :-)
Das waren alles nur Beispiele :-)
Gut. Sonst waer's wieder so ein totenpeinliches Ding gewesen. Wo man selbst allein vorm Monitor rot wird. :D
Ich verstehe dich aber doch richtig, Du definiert in Datei A einen String, erweiterst den Code der Datei A durch einen Include von Datei B in der dieser String ausgegeben werden soll. Wird er aber nicht.
Was gibt denn der Browser aus? Kommt da ueberhaupt was aus Datei B an? Falls Du das noch nicht gemacht hast, versuch doch mal sowas wie echo '- $titel -' und schau den Sourcecode im Browser an.
Du darfst das auch gern mal posten...
Du hast es genau richtig verstanden.
$titel ist in Datei B komplett leer. <? echo "- ".$titel." -"; ?> gibt er als - - aus.
Du hast es genau richtig verstanden.
$titel ist in Datei B komplett leer. <? echo "- ".$titel." -"; ?> gibt er als - - aus.
Dann duerfte ja theoretisch auf deinem system kaum ein Programm laufen. Jedenfalls keine die includes benutzen. Oder seh ich das falsch und es ist ein Problem das sich nur auf diese Dateien bezieht?
hi,
in meinem Script steht
<?php $titel="Hier der Titel"; include("header.php"); ?>.Im header.php steht dann mehrmals <?php echo $titel ?>
Nun müsste doch in der header.php überall "Hier ist der Titel" stehen. Aber da ist alles leer.
error_reporting auf E_ALL stellen, display_errors auf on.
Was steht im erzeugten HTML-Quellcode? Werden die Script überhaupt als PHP geparst ...?
gruß,
wahsaga
Hi, ja das wird als PHP geparst.
Fehlermeldung ist wie ich mir schon gedacht habe Notice: Undefined variable: titel in...
Der Quellcode ist reiner Text. Und im header.php normales html und halt <?php echo $titel ?>
Der Quellcode ist reiner Text. Und im header.php normales html und halt <?php echo $titel ?>
Und was steht genau in seite.php? Diesmal aber Originalcode und kein aus dem Hut gezaubertes Beispiel.
mfg
Rato
Hallo,
Hi, ja das wird als PHP geparst.
Fehlermeldung ist wie ich mir schon gedacht habe Notice: Undefined variable: titel in...
so, jetzt kommen wir vielleicht weiter.
_WO_ genau greifst du auf $title zu? Etwa innerhalb einer Funktion? Innerhalb von Funktionen sind global definierte Variablen nicht verfügbar, es sei denn, sie werden explizit mit
global $variablenname;
am Anfang der Funktion bekanntgemacht.
So long,
Martin