Alex: Script für Zufallsbild funktioniert nicht

Hallo,
ich habe aus einem Buch ein Script für ein Zufallsbild
abgetippt. Leider funktioniert das bei mir nicht.
Kann mir vlt. jmd. weiterhelfen.
Ich will die Bilder aus dem Ordner "Klein" (z.Zt. ist
da "test1.jpg" und "test2.jpg" im Ordner) auslesen
und an einer Stelle in HTML mit "<? $bild ?>" einfügen.

Dieses Script habe ich abgetippt:

<?
// PHP- Script für das Zufallsbild
$bilder = array();
//Datei öffnen
$dir = opendir ("Klein");
//Datei lesen ohne die Verzeichnisse darüber
while ($bild = readdir ($dir))
 if ($bild != "." && $bild != ".."
 $bilder [] = "<img src="/Klein/$bild">";
closedir($dir);
$max = count($bilder)-1;
$zufall = rand(0,$max);
$bild = $bilder[$zufall];
?>

Ich weiß, dass hier schon des öfteren etwas zu Zufalls-
bildern geschrieben wurde; aber die Scripte schienen
mir noch komplizierter als das obere.
Da ich ansonsten auf PHP (abgesehen von einem Counter
und der Include-Funktion) verzichten wollte, wäre
ich dankbar, wenn ich aus dem "Wasser gezogen werde
und mir nicht versucht, jmd. das Schwimmen beizubringen".
Um PHP richtig zu erlernen fehlt mir einfach die Zeit,
aber auf ein Zufallsbild würde ich ungerne verzichten.

Auf Hilfe hoffend, verbleibe ich mit freundlichem Gruß

Alex

  1. hi,

    Leider funktioniert das bei mir nicht.

    </hilfe/charta.htm#tipps-fuer-fragende>

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. </hilfe/charta.htm#tipps-fuer-fragende>

      Ich kenne die Charta. Deshalb hab ich mich auch
      schon bei meiner Frage dafür entschuldigt und
      erklärt, warum mein Selbstengagement hier
      niedrig ist (PHP nur für das Zufallsbild
      zu erlernen scheint mir zu kompliziert).

      Ich versuche mich i.d.R. immer an die
      Charta zu halten, wäre aber dankbar, wenn
      ich hier einmalig trotzdem Hilfe bekomme.

      1. hi,

        Ich versuche mich i.d.R. immer an die
        Charta zu halten, wäre aber dankbar, wenn
        ich hier einmalig trotzdem Hilfe bekomme.

        Das bezog sich vor allem darauf, dass "geht nicht" zu wenig für eine Problembeschreibung und zum _nachvollziehen_ des Problems ist.

        Sofern nicht noch jemand in deinem Code einen wirklich offensichtlichen (Logik-)Fehler findet, kommen wir so also vermutlich nicht weiter.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Das bezog sich vor allem darauf, dass "geht nicht" zu wenig für eine Problembeschreibung und zum _nachvollziehen_ des Problems ist.

          Achso. Sorry!
          Vlt. sagt einem ja diese Meldung etwas:
          Parse error: syntax error, unexpected T_VARIABLE in C:\Programme\Apache2\htdocs\pimper\Include\head2.php on line 9
          In Line 9 müsste das hier stehen:
          $bilder [] = "<img src="/Klein/$bild">";

          Die bisherigen PHP-Funktionen include() usw. funktionieren
          übrigens.

          1. Das Problem ist mit dem Script von Stahli gelöst.
            Danke dafür und an alle die sich über meine Frage
            Gedanken gemacht haben.

  2. Hallo Alex,
    hier sind zumindest die Syntaxfehler behoben.

      
    <?  
    // PHP- Script für das Zufallsbild  
    $bilder = array();  
    //Ordner öffnen  
    $dir = opendir ("Klein");  
    //Datei lesen ohne die Verzeichnisse darüber  
    while ($bild = readdir ($dir)){  
     if ($bild != "." && $bild != "..")  
     array_push($bilder,"<img src=\"Klein/$bild\">");  
    }  
    closedir($dir);  
    $max = count($bilder)-1;  
    $zufall = rand(0,$max);  
    $bild = $bilder[$zufall];  
    ?>  
    
    
    --
    Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist überzeugt, dass er genug davon habe.
    René Descartes
    1. Super! Danke Stahli!
      Es funktioniert; werd mir jetzt noch anschauen,
      was du geändert hast und versuche daraus zu
      lernen. Danke für die schnelle und super
      Antwort :-)
      Der Tag ist gerettet

  3. Hi Alex,

    Ich will die Bilder aus dem Ordner "Klein" (z.Zt. ist da "test1.jpg" und "test2.jpg" im Ordner) auslesen und an einer Stelle in HTML mit
    "<? $bild ?>"
    einfügen.

    das würde dir nicht helfen, denn dieser Ausdruck ist zwar syntaktisch zulässig, erzeugt aber keine Ausgabe. Da müsste dann schon z.B. ein echo $bild; stehen.

    Außerdem solltest du dir prophylaktisch angewöhnen, PHP-Blöcke im Quelltext immer mit "<?php" einzuleiten. Die Kurzform, die du verwendest, wird nicht bei jedem Provider unterstützt.

    <?

    Dito.

    if ($bild != "." && $bild != ".."

    Hier fehlt die schließende Klammer um den if-Ausdruck. Das dürfte dein Hauptfehler gewesen sein.

    Um PHP richtig zu erlernen fehlt mir einfach die Zeit, ...

    Schade eigentlich. Du könntest es sicher für vieles andere ebensogut gebrauchen.

    Schönes Wochenende noch,
     Martin

    --
    Idealismus wächst mit der Entfernung zum Problem.
    1. Hi Martin,

      Mit meiner Ursprungsfrage hat mir ja Stahli schon
      erfolgreich weitergeholfen. Trotzdem danke, dass
      du dir Gedanken gemacht hast.

      » Außerdem solltest du dir prophylaktisch angewöhnen, PHP-Blöcke im Quelltext immer mit "<?php" einzuleiten. Die Kurzform, die du verwendest, wird nicht bei jedem Provider unterstützt.

      Danke für den Tipp. Momentan kann ich das ja noch problemlos
      (weil nicht viele PHP-Anweisungen) nachholen.

      Schade eigentlich. Du könntest es sicher für vieles andere ebensogut gebrauchen.

      Das merke ich auch von Tag zu Tag; nämlich immer dann, wenn mir
      gute Ideen kommen, die ich mit HTML nicht umsetzen kann.
      Ich hoffe, dass ich mich irgendwann mal motivieren kann, aber
      das ist ja schon nen großer Schritt, wenn man vorher mit
      programmieren noch nie was am Hut gehabt hat.

      Wünsche dir auch ein schönes Wochenend

      MfG
      Alex