Stefan: Zufälliges Bild für alle Seiten beibehalten

Hallo Self-Leute!

ich habe vor ein Bild aus einer Auswahl von mehreren zufällig auswählen zu lassen, welches nicht nur auf der Hauptseite sondern auch auf den darauffolgenden genutzt wird. Für das zufällige Laden eines Bildes hab ich mir selbst auch schon ein Javascript geschrieben:

var banner_quantity = 6;
var banner = new Array();
for (i=0; i<banner_quantity; i++){
 banner[i] = new Image();
}

banner[0].src = "images/global/borrev1.gif";
banner[1].src = "images/global/borrev2.gif";
banner[2].src = "images/global/borrev3.jpg";
banner[3].src = "images/global/borrev4.gif";
banner[4].src = "images/global/borrev5.gif";
banner[5].src = "images/global/borrev6.gif";

function loadBanner(){
 var banner_nr = Math.floor(Math.random()*(banner_quantity-1));
 document.bannerpic.src = banner[banner_nr].src;
}

Banner ist hierbei wohl eher irreführend, da es wirklich nur ein Bild im Kopf der Html ist. Da Javascript bei so einer Sache aber eher die falsche Wahl ist und da ich die Kommunikation zwischen der Hauptseite und den nächsten Seiten nicht aufbauen kann, würde ich mir gern ein PHP-Script basteln. Habe mich da erstmal ein bisschen kund getan wie so ein Script in PHP-Form aussehen könnte:

<?php
$banner = array(images/banner1.gif,images/banner2.gif,images/banner3.gif);
$zufall = array_rand($arr);
<img src="<?php $zufall; ?>" alt="banner">
?>

Keine Ahnung, ob das jetzt wirklich so funktioniert, da ich mir das aus php.net zusammengeschnipselt habe. Ich hab auch keine Ahnung, wie ich das ins Html einbette. Interessant wäre es aber nun dieses zufällige Bild auch auf den nächsten Seiten erscheinen zu lassen und erst bei einem Neubesuch dieser Webseite ein anderes Bild laden zu lassen. Was ist da zutun? Geht das über Cookies?

Gruß
Stefan

  1. Hey,
    bei der ausgabe im IMG-Tag musst du schreiben:
    <img src="<?php echo($zufall); ?>" alt="banner">

    Du kannst dass dann mit Sessions verbinden.
    Also erst checken ob ne Session besteht, wenn nicht ein Zufallsbild wählen, wenn schon das bestimmte Bild anzeigen.

    Also du brauchst:
    Sessions
    If-Abfragen

    1. Danke für die schnelle Antwort Alex!
      Hab im php.net auch eine Menge Erklärung zu Sessions erhalten aber vieles war halt Techno-Gebabbel, was mich als Anfänger eher irritiert hat. Ich hab mal das kleine Script mit der Session-Anweisung erweitert:

      <?php
      $banner = array(images/banner1.gif,images/banner2.gif,images/banner3.gif);
      $_SESSION['zaehler'] = 0

      session_start();
      if ($_SESSION['zaehler'] = 0) {
       $zufall = array_rand($arr);
       $_SESSION['zaehler'] = 1;
      }

      <img src="<?php echo($zufall); ?>" alt="banner">
      ?>

      Stimmt das so? PHP erscheint mir kryptischer als jede andere Sprache, die ich bisher gelernt habe :-D

      1. <?
        session_start();
        if(isset($_SESSION['zaehler']))
        {
        $bild = $_SESSION['zaehler'];
        }
        else
        {
        $banner = array(images/banner1.gif,images/banner2.gif,images/banner3.gif);
        $zufall = array_rand($arr);
        $_SESSION['zaehler'] = $zufall;
        $bild = $zufall;
        }

        So das müsste passen. Danach musst du halt wieder das <img>-Tag irgendwo setzen.

        gruß
        aLex

        1. Ja das macht Sinn irgendwie. Danke nochmal! Werde das morgen dann mal testen.

          Gruß
          Stefan

      2. Hi,

        Hab im php.net auch eine Menge Erklärung zu Sessions erhalten

        Da Du ohnehin Javascript verwendest, brauchst Du keine serverseitigen Session dazu. Ich würde die  Bildangabe einfach in einem Cookie speichern - wer keine Cookies zuläßt, bekommt halt andere Zufallsbilder...

        freundliche Grüße
        Ingo

        1. Und die Armen Leute die kein JS zulassen bekommen dann nur ein Bild oder villeicht sogar garkeins...
          Lass ihn doch PHP nutzen, wenn er eh schon fast fertig ist mit dem PHP skript

          1. Hallo Alex.

            Und die Armen Leute die kein JS zulassen bekommen dann nur ein Bild oder villeicht sogar garkeins...

            Um Himmels Willen! Wirklich menschenverachtend, fürwahr.

            Lass ihn doch PHP nutzen, wenn er eh schon fast fertig ist mit dem PHP skript

            Kanonenschießen auf Spatzen war schon immer eine populäre Disziplin.

            Einen schönen Sonntag noch.

            Gruß, Ash*scnr*ura

            --
            sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
            „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
            [HTML Design Constraints: Logical Markup]
            1. Hallo Ashura,

              Kanonenschießen auf Spatzen war schon immer eine populäre Disziplin.

              So trifft man wenigstens alle spatzen und muss nciht so genau zielen ;)

              gruß
              aLex

      3. Hallo,

        $banner = array(images/banner1.gif,images/banner2.gif,images/banner3.gif);

        müßte das nicht so lauten?
        $banner = array('images/banner1.gif', 'images/banner2.gif,images/banner3.gif');

        mfg
        Twilo

        1. Hallo

          $banner = array(images/banner1.gif,images/banner2.gif,images/banner3.gif);

          müßte das nicht so lauten?
          $banner = array('images/banner1.gif', 'images/banner2.gif,images/banner3.gif');

          Nur, wenn images/banner2.gif,images/banner3.gif _ein_ Element des Arrays sein soll. Ansonsten sollte es so gehen: $banner = array('images/banner1.gif', 'images/banner2.gif', 'images/banner3.gif');. :-)

          Tschö, Auge

          --
          Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
          (Victor Hugo)
          Veranstaltungsdatenbank Vdb 0.1