Fehler bei Switchendem Header

Hallo,

ich möchte wie ich es mit einigen Kleinen Texten mache auch meinen Header bei Reload ändern!

Was nun mein Problem ist das er wenn ich das Script das normalerweise das Bild Includiert das rauskommt:

sirzimt.bplaced.net/index2.php

Wie jeder sieht kommt sozusagen das was rauskommt wenn man per Editor das Bild öffnen würde…

Es handelt sich normalerweise bisher um diese 2:

Standart:
sirzimt.bplaced.net/images/header.png

  1. Neuer:
    sirzimt.bplaced.net/images/header2.png

Gespeichert mit Photoshop CS3 im PNG also kein Extra Konvert… (kenne einige die das meinen…)

Das Script sieht folgend aus:

[code]

<?php //Start - Random $i = mt_rand(0,5); //Zufällige Zahl zwischen x(0) und y(5) switch ($i) { //Zufällige Zahl hier eintragen case 0: //Wenn $i == 0 include('header.png'); //füge datei0.txt ein break; //Führe kein anderen case aus! case 1: include ('header2.png'); break; default: include('header.png'); } //Ende - Random ?>[/code]

Die Kommentare hab ich mir als kleine Hilfe drangelassen…

Im head siehts folgend aus:

<div id="head">
  <div align="center">
    <p><img src="<?php include('images/header.php'); ?>" alt="headerpic" /><br />
      <?php include('header/random.php'); ?><br />
    </p>
  </div>

Hoffe jemand weis eine Abilfe dazu :slight_smile:
Hoffe jemand weis eine Abhilfe :susp:

MfG Sir. Zimt

Wenn du das Bild wirklich direkt in das src-Attribut schreiben
willst, mußt du dazu das Pseudoprotokoll ‘data’ verwenden und
dann zumindest bei Pixelgraphik dieses mit base64 kodieren.

Einfacher ist es allerdings meist, in das src-Attribut die URI eines
PHP-Skriptes zu schreiben, welches dann einfach das gewünschte
Bild ausgibt. Das PHP-Skript wird dann mit der Funktion header
den passenden Content-Type senden müssen.

Beispiele für beides gibt es z.B. auf meiner Seite:
hoffmann.bplaced.net/hilfe.php?m … erstesbild

Achso, sofern es sich um statische Bilder handelt, ist es natürlich
viel einfacher, einfach nur per PHP die URI im Attribut src zu
ändern ;o)

[quote=“hoffmann”]Wenn du das Bild wirklich direkt in das src-Attribut schreiben
willst, mußt du dazu das Pseudoprotokoll ‘data’ verwenden und
dann zumindest bei Pixelgraphik dieses mit base64 kodieren.

Einfacher ist es allerdings meist, in das src-Attribut die URI eines
PHP-Skriptes zu schreiben, welches dann einfach das gewünschte
Bild ausgibt. Das PHP-Skript wird dann mit der Funktion header
den passenden Content-Type senden müssen.

Beispiele für beides gibt es z.B. auf meiner Seite:
hoffmann.bplaced.net/hilfe.php?m … erstesbild

Achso, sofern es sich um statische Bilder handelt, ist es natürlich
viel einfacher, einfach nur per PHP die URI im Attribut src zu
ändern ;o)[/quote]

Das tue ich ja :unamused: mein Problem ist das er es falsch ausgibt… :unamused:

Nein, keine der Alternativen hast du da sinnvoll umgesetzt,
sondern eher alles durcheinandergebracht.

Wenn du zufällig die URI eines Bildes auswählen willst,
so kannst du dein Skript so ändern, daß dort statt include
einfach der Dateiname festgelegt wird, also statt

include (‘header2.png’);

schreibst du

$bildURI=‘header2.png’;

entsprechend für den anderen Fall.

Das Skript fügst du in die Datei ein, wo dein (X)HTML-Kram
drinsteht, beziehungsweise umgedreht, den (X)HTML-Kram
fügst du hinten an dein Skript an.

Dann schreibst du im img-Element einfach:

...

Bei der anderen Variante, wo das Bild selbst dynamisch
erzeugt wird, schreibst du etwa:

...

In dem Skript bildSkript.php wird dann eben mit PHP entweder
das Bild selbst dynamisch gemalt oder ausgwürfelt und geladen.
Bevor es wieder ausgegeben wird, wird zuvor mit der Funktion
header der passende Content-Type gesendet. Ohne diesen
wird der Kram als text/html interpretiert, was für Pixelgraphik
zu dem Salat führt, den du aktuell gerade siehst ;o) In deinem
Falle folgt das bei deinem Beispiel allerdings eher aus der
Fehlerbehandlung für blödsinnigen Inhalt des jeweiligen
browsers.

Dritte Variante: Statisches Bild in die URI schreiben
(würde ich nicht empfehlen).
Da passiert wieder alles in einem Skript. Das Bild wird dann
in einen Puffer geladen, mit base64 kodiert und diese
Zeichenkette wird dann nach mit vorhergehendem ‘data:’ und
Content-Type wie auf meiner Seite weiter unten beschrieben in
das src-Attribut eingefügt.

Ich würde auch keinesfalls include verwenden, um Pixelgraphik
in eine PHP-Datei einzulesen, weil bei include der PHP-parser
den Kram zu interpretieren versucht. Passender ist da für deinen
Zweck allenfalls sowas wie readfile. Wenn das Bild manipuliert
werden soll, wären das dann die image-Funktionen von PHP, die
auch spezielle Funktionen bieten, um Pixelgraphik zu laden.

Danke das klappt sogar :smiley: danke für die nette Hilfe :slight_smile: