Quelltext durch PHP-Fehler als Plain ausgegeben

Hallöle,

ich suche jetzt schon seit 2 Tagen den Fehler… finde ihn aber nicht :motz: .
Ich bin zurzeit dabei den Blog meiner neuen Seite zu programmieren und bin was Fehlerbeseitigung zurzeit angeht im Stocken.
Problem ist das mittem im text Quelltext als Plain-Text angezeigt wird. Also wie normaler text…

Ich weis nicht wieso das so ist. Nur das ich nicht weis wo der Fehler den nun ist… hoffe mal hier ist jemand fündiger wie ich.

Hier die PHP Datei sowie Link dazu für Live-Ansicht.

blog.php

[code]

<?php if( (isset($_GET['mode'])) AND ($_GET['mode'] == 'view') ) { $id = $_GET['id']; $sql = "SELECT * FROM blog_de WHERE id=$id"; $entry = mysql_query($sql,$datenbank) or die(mysql_error()); while($blog = mysql_fetch_object($entry)) { echo('
'."\n"); echo('

'.print($blog->title).'

'."\n"); echo('

ID '.print($blog->id).'

'."\n"); echo('

'.print($blog->datum).'

'."\n"); echo('
'.print($blog->text).'
'."\n"); echo('

Geschrieben von: '.print($blog->autor).' in '.print($blog->group).'

'."\n"); echo('
'); } }else if(isset($_GET['mode']) == 'archiv'){ echo('

Archiv noch nicht verfügbar'); }else{ $sql = "SELECT * FROM blog_de"; $entry = mysql_query($sql,$datenbank) or die(mysql_error()); while($blog = mysql_fetch_object($entry)) { echo('

'."\n"); echo('

Id'.print($blog->id).'

'."\n"); echo('

'.print($blog->datum).'

'."\n"); echo('
'.print($blog->text).'
'."\n"); echo('

Geschrieben von: '.print($blog->autor).' in '.print($blog->group).'

'."\n"); echo('

Kommentare (-)

'."\n"); echo('
'."\n"); echo('
'); } } ?> [/code]

Hier mal nen Ausschnitt noch der Ausgabe:

[quote]News
Blog
Gästebuch

Projekte
Antribute

Links
Impressum
Blog | Gästebuch | Antribute | Links | Impressum
Webstandards
1" style=„font-size:24px“>1

Id104.05.2010

1

Überall dieselbe alte Leier. Das Layout ist fertig, der Text lässt auf sich warten.
Damit das Layout nun nicht nackt im Raume steht und sich klein und leer vorkommt, springe ich ein: der Blindtext.
Genau zu diesem Zwecke erschaffen, immer im Schatten meines großen Bruders »Lorem Ipsum«,
freue ich mich jedes Mal, wenn Sie ein paar Zeilen lesen. Denn esse est percipi - Sein ist wahrgenommen werden.
Und weil Sie nun schon die Güte haben, mich ein paar weitere Sätze lang zu begleiten, möchte ich diese Gelegenheit nutzen,
Ihnen nicht nur als Lückenfüller zu dienen, sondern auf etwas hinzuweisen,
das es ebenso verdient wahrgenommen zu werden: Webstandards nämlich.
Sehen Sie, Webstandards sind das Regelwerk, auf dem Webseiten aufbauen. So gibt es Regeln für HTML, CSS,
JavaScript oder auch XML; Worte, die Sie vielleicht schon einmal von Ihrem Entwickler gehört haben.
Diese Standards sorgen dafür, dass alle Beteiligten aus einer Webseite den größten Nutzen ziehen.
Im Gegensatz zu früheren Webseiten müssen wir zum Beispiel nicht mehr zwei verschiedene Webseiten
für den Internet Explorer und einen anderen Browser programmieren. Es reicht eine Seite, die - richtig angelegt - sowohl
auf verschiedenen Browsern im Netz funktioniert, aber ebenso gut für den Ausdruck oder die Darstellung
auf einem Handy geeignet ist. Wohlgemerkt: Eine Seite für alle Formate. Was für eine Erleichterung.
Standards sparen Zeit bei den Entwicklungskosten und sorgen dafür, dass sich Webseiten später
leichter pflegen lassen. Natürlich nur dann, wenn sich alle an diese Standards halten.
Das gilt für Browser wie Firefox, Opera, Safari und den Internet Explorer ebenso wie für
die Darstellung in Handys. Und was können Sie für Standards tun?
Fordern Sie von Ihren Designern und Programmieren einfach standardkonforme Webseiten.
Ihr Budget wird es Ihnen auf Dauer danken. Ebenso möchte ich Ihnen dafür danken, dass Sie mich bin zum Ende gelesen haben.
1News

Choast in 1

Geschrieben von: 1

Kommentare (-)
Kafka
2" style=„font-size:24px“>1

Id104.05.2010

1

Jemand musste Josef K. verleumdet haben, denn ohne dass er etwas Böses getan hätte, wurde er eines Morgens verhaftet. „Wie ein Hund!“ sagte er, es war, als sollte die Scham ihn überleben. Als Gregor Samsa eines Morgens aus unruhigen Träumen erwachte, fand er sich in seinem Bett zu einem ungeheueren Ungeziefer verwandelt. Und es war ihnen wie eine Bestätigung ihrer neuen Träume und guten Absichten, als am Ziele ihrer Fahrt die Tochter als erste sich erhob und ihren jungen Körper dehnte. „Es ist ein eigentümlicher Apparat“, sagte der Offizier zu dem Forschungsreisenden und überblickte mit einem gewissermaßen bewundernden Blick den ihm doch wohlbekannten Apparat. Sie hätten noch ins Boot springen können, aber der Reisende hob ein schweres, geknotetes Tau vom Boden, drohte ihnen damit und hielt sie dadurch von dem Sprunge ab. In den letzten Jahrzehnten ist das Interesse an Hungerkünstlern sehr zurückgegangen. Aber sie überwanden sich, umdrängten den Käfig und wollten sich gar nicht fortrühren.
1News

Choast in 1

Geschrieben von: 1

Kommentare (-)

© 2011 by Syntafin
[/quote]

Und hier die ansicht im Browser:
antribute.eu/index2.php?p=blog

Falls noch Fragen offen sind nur her damit…

PS: Denke uninteressant: hab den Dokumenttyp in der index2.php von XHTML auf HTML5 geändert… der Fehler war vorher aber auch…

MfG SirZimt

while($blog = mysql_fetch_object($entry)) { echo('<div class="entry">'."\n"); echo('<div class="title"><p style="font-size:24px">'.print($blog->title).'</p></div>'."\n");
Die - reichlich unsinnige - Verwendung von print dürfte das Problem sein.

print hat nämlich, wie man im Handbuch nachlesen kann (was du vermutlich wieder mal nicht gemacht hast), einen nummerischen Rückgabewert, und zwar immer 1.
Durch den „Einbau“ ins echo wird das, was print ausgibt, vor der restlichen Ausgabe des echo-Statements ausgeben, und nur der nummerische Rückgabewert landet an der Stelle, wo das print im Code steht.

Was sollen die print-Statements denn überhaupt da - warum setzt du nicht direkt die Variablen, die du ausgeben möchtest, ins echo ein?

(Abgesehen davon, dass du sie natürlich nur dann direkt einsetzen möchtest, wenn die nötige kontextgerechte Behandlung der Werte bereits stattgefunden hat.)

Das mit print ist noch eine altlast, als ich vor längerem damit anfing habe ich print darin genommen um mir die übersicht leichter zu machen.
Werd dann morgen Anfangen die print wieder mit echo zu tauschen

im echo noch nen echo? :ps: :astonished:
Machs doch so:

while($blog = mysql_fetch_object($entry)) { echo('<div class="entry">'."\n"); echo('<div class="title"><p style="font-size:24px">'.$blog->title.'</p></div>'."\n");

Wobei man eig. nich mal die klammern fürs echo braucht…
Ein echo im echo wird fehler werfen, am besten ist in der tat dIe verwendung des .-operators, um strings und variablen zu verknüpfen.
Bei doppelten anführungszeichen kann man dann noch vqriablen direkt mit zwischen die anführungszeichen schreiben, ist aber geschmackssache…
echo “meine zahl ist $zahl”;
mfg

DHMH ich glaub du hast nichtmal gelesen was chrisb geschrieben hat…

Weil wenn man macht was er sagt sieht es in der Tat so aus:

[code]

<?php if( (isset($_GET['mode'])) AND ($_GET['mode'] == 'view') ) { $id = $_GET['id']; $sql = "SELECT * FROM blog_de WHERE id=$id"; $entry = mysql_query($sql,$datenbank) or die(mysql_error()); while($blog = mysql_fetch_object($entry)) { echo('
'."\n"); echo('

'.$blog->title.'

'."\n"); echo('

ID '.$blog->id.'

'."\n"); echo('

'.$blog->datum.'

'."\n"); echo('
'.$blog->text.'
'."\n"); echo('

Geschrieben von: '.$blog->autor.' in '.$blog->group.'

'."\n"); echo('
'); } }else if(isset($_GET['mode']) == 'archiv'){ echo('

Archiv noch nicht verfügbar'); }else{ $sql = "SELECT * FROM blog_de"; $entry = mysql_query($sql,$datenbank) or die(mysql_error()); while($blog = mysql_fetch_object($entry)) { echo('

'."\n"); echo('

Id'.$blog->id.'

'."\n"); echo('

'.$blog->datum.'

'."\n"); echo('
'.$blog->text.'
'."\n"); echo('

Geschrieben von: '.$blog->autor.' in '.$blog->group.'

'."\n"); echo('

Kommentare (-)

'."\n"); echo('
'."\n"); echo('
'); } } ?> [/code]

Hallo zusammen,

die ganzen echo Befehle sind überhaupt nicht notwendig. Es geht so einfacher

Zumindest in meinen Augen ist es bedeutend übersichtlicher.

MfG

[quote=„starhunter“]Hallo zusammen,

die ganzen echo Befehle sind überhaupt nicht notwendig. Es geht so einfacher

<span class="syntaxhtml"><br /><span class="syntaxdefault"><?php while</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$blog </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_fetch_object</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$entry</span><span class="syntaxkeyword">):</span><span class="syntaxdefault"> ?><br /></span><br />  <div class="entry"><br />    <div class="title"><br />      <p style="font-size:24px"><span class="syntaxdefault"><?php echo $blog</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">title</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> ?></span>)</p><br />    </div><br />    <div class="idnr"><br />      <p style="font-size:9px">ID <span class="syntaxdefault"><?php echo $blog</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">id</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> ?></span>)</p><br />    </div><br />    <div class="date"><br />      <p style="font-size:9px"><span class="syntaxdefault"><?php echo $blog</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">datum</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> ?></span></p><br />    </div><br />    <div class="text"><span class="syntaxdefault"><?php echo $blog</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">text</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> ?><br /></span>    </div><br />    <div class="autorinfo"><br />      <p>Geschrieben von: <span class="syntaxdefault"><?php echo $blog</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">autor</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> ?></span> in <span class="syntaxdefault"><?php echo $blog</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">group</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> ?></span></p><br />    </div><br />  </div><br /><br /><span class="syntaxdefault"><?php endwhile</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> ?><br /></span></span>

Zumindest in meinen Augen ist es bedeutend übersichtlicher.

MfG[/quote]

Lieber starhunter… vlt. ist es dir aufgefallen aber das ganze mit echo kommt daher das es in if() steht… nur so kurz anzumerken :morgen:

Du hast dich vertan - du suchtest nicht den :morgen:-Smilie, sondern den :auch-an-dieser-Stelle-kann-ich-es-einfach-nicht-besser:-Smilie …
php.net/manual/en/language.b … hpmode.php

Du hast dich vertan - du suchtest nicht den :morgen:-Smilie, sondern den :auch-an-dieser-Stelle-kann-ich-es-einfach-nicht-besser:-Smilie …
php.net/manual/en/language.b … hpmode.php[/quote]

Und du suchst wohl den :ich-kann-immer-noch-nur-andere-beleidigen:-Smilie was? :unamused:

Hallo SirZimt,

mir war es schon aufgefallen. Es war nur als kurzes Beispiel gedacht, ich hatte keine Lust Deinen ganzen Code umzuschreiben.

MfG

Hi,

selbst wenn es in ner if abfrage steht ists i.d.R. egal wenn man dran denkt die if abfrage wieder sauber durch } abzuschließen …

lg