Jürgen: Thumbnailgalerie

Hi,

Könnte mal jemand die folgenden beiden Quelltexte vergleichen? Der erste Quelltext stammt aus der Datei, die sich direkt im BILDER-Verzeichnis befindet. Der zweite befindet sich im Überordner. (Auf den ersten möchte ich natürlich verzichten.) Problem: Der erste Quelltext funktioniert tadellos, der zweite erstellt überhaupt keine Thumbnails.

Also, die Skripte:

[b]1. Quelltext:[/b]

  
<?  
$loeschdatum=date(j);  
$verzeichnis = opendir ("./thumbs/");  
while ($file=readdir($verzeichnis)) {if ($loeschdatum=="9") unlink ("./thumbs/".$file); }                        //Immer bei Monats-Anfang wird das Thumbnail-Verzeichnis erneuert  
  
if (is_dir("./thumbs/")==false) mkdir ("./thumbs/");  
  
$verzeichnis = opendir ('.');  
while ($file=readdir($verzeichnis)) {  
if (file_exists("./thumbs/".$file)==false) {  
  
$quell_file  = imagecreatefromjpeg($file);  
  
$height = imagesy($quell_file); // Höhe  
$width = imagesx($quell_file);  // Breite  
  
  
$bild_h = 112;  
$quot = $height / 112;  
$bild_w = round($width / $quot);  
  
$ziel_file = imagecreatetruecolor($bild_w,$bild_h);  
  
imagecopyresized($ziel_file,$quell_file,0,0,0,0,$bild_w,$bild_h,$width,$height);  
  
imageinterlace($ziel_file);  
  
$thumb = imagejpeg($ziel_file,"./thumbs/".$file,100);  
  
} }  
?>  

========================================================================

[b]2. Quelltext:[/b] (Nur den will ich haben)

  
<?  
$loeschdatum=date(j);  
$thumbverzeichnis = opendir ("./bilder/thumbs/");  
while ($file=readdir($thumbverzeichnis)) {if ($loeschdatum=="1") unlink ("./bilder/thumbs/".$file); }                        //Immer bei Monats-Anfang wird das Thumbnail-Verzeichnis erneuert  
  
if (is_dir("./bilder/thumbs/")==false) mkdir ("./bilder/thumbs/");  
  
$verzeichnis = opendir ('./bilder/');  
while ($file=readdir($verzeichnis)) {  
if (file_exists("./bilder/thumbs/".$file)==false) {  
  
$quell_file  = imagecreatefromjpeg($file);  
  
$height = imagesy($quell_file); // Höhe  
$width = imagesx($quell_file);  // Breite  
  
$bild_h = 112;  
$quot = $height / 112;  
$bild_w = round($width / $quot);  
  
$ziel_file = imagecreatetruecolor($bild_w,$bild_h);  
  
imagecopyresized($ziel_file,$quell_file,0,0,0,0,$bild_w,$bild_h,$width,$height);  
  
imageinterlace($ziel_file);  
  
$thumb = imagejpeg($ziel_file,"./bilder/thumbs/".$file,100);  
  
 } }  
?>  

Wär nett, wenn mir jmd sagen könnte, woran das liegt.

  1. Hi Jürgen,

    Könnte mal jemand die folgenden beiden Quelltexte vergleichen? Problem: Der erste Quelltext funktioniert tadellos, der zweite erstellt überhaupt keine Thumbnails.

    Zwei simple Quelltexte wirst du doch wohl auch selber vergleichen können, oder? Wenn schon, dann sag uns wenigstens, wodurch sich das Nicht-Funktionieren des zweiten Scriptes äußert, also welche Fehlermeldungen es gibt oder so (nicht vergessen, vorher error_reporting auf E_ALL zu setzen). Danke.

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
    Mit Gesetzen ist es wie mit Würstchen - es ist besser, wenn man nicht weiß, wie sie gemacht werden. (Otto v. Bismarck)
    1. Es werden leider keine Fehlermeldungen ausgegeben. Es erscheint beim zweiten Skript nur dieses Leerbild-Zeichen (Dieses rote X). Was meinst du mit E_ALL? Kenn mich damit noch nicht so aus(I=Anfänger). Wo kann man des im Web einstellen?

      Mfg Jürgen

      PS.: Die Funktionen sind in beiden Skripts eigentlich die gleichen Funktionen (es sei denn, ich hab' mich verschrieben, hab' ich aber schon überprüft). Ich glaube, dass es irgendwas mit den Pfaden zu tun hat!?!

      1. Hi Jürgen,

        Es werden leider keine Fehlermeldungen ausgegeben. Es erscheint beim zweiten Skript nur dieses Leerbild-Zeichen (Dieses rote X).

        Ähm, wie rufst du das Script denn auf? Wenn ich das richtig gesehen habe, dann erzeugt das Script doch nur von den Bilder in Ordner X ein Thumbnail und speichert es anderswo ab - oder?

        Was meinst du mit E_ALL? Kenn mich damit noch nicht so aus(I=Anfänger). Wo kann man des im Web einstellen?

        Eine Google Suche nach php error_reporting hätte dich direkt auf http://de2.php.net/error_reporting geführt, wo du alles weitere erklärt bekommen hättest.

        PS.: Die Funktionen sind in beiden Skripts eigentlich die gleichen Funktionen (es sei denn, ich hab' mich verschrieben, hab' ich aber schon überprüft). Ich glaube, dass es irgendwas mit den Pfaden zu tun hat!?!

        Existieren die Ordner in denen das Script speichern will und hat das Script dort auch Schreibrechte?

        MfG, Dennis.

        --
        Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
        Sinnvolles Zitieren: Man zitiert nur Teilsätze des Vorposters auf die man sich bezieht! Nicht einfach alles.
        1. Existieren die Ordner in denen das Script speichern will und hat das Script dort auch Schreibrechte?

          Ja logisch, des 2. Skript funktioniert ja auch.

          Die Bilder rufe ich übrigens so auf:

            
          <html>  
          <head>  
          <title>Homepage</title>  
          <link rel="stylesheet" type="text/css" href="styles.css">  
          </head>  
            
          <body bgcolor="#000000">  
          <em><strong><h1>Galerie</h1></strong></em> <br>  
            
          <table width="760" cellpadding="20">  
          <tr>  
          
          
            
          <? $bilderverzeichnis = opendir ('./bilder/');  
          $i=0;  
          while ($file=readdir($bilderverzeichnis)) {  
          if (eregi(".jpg", $file)) { ?>  
              <td width="200" height="150" align="center"><a href="#" onClick="javascript:window.open('./bilder/<? echo $file; ?>','Bildergalerie', 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, copyhistory=no, width=650, height=500, top=0, left=0,')">  
                <img class="thumbnail" src="./bilder/thumbs/<? echo $file; ?>" name="bild" align="middle" alt="&raquo; Zum Vergrößern draufklicken! &laquo;"></a>  
              </td>  
          <? $i++;  
               if ($i%4=="0") echo "</tr><tr>";  
          } } ?>
          ~~~~~~html
            
          </tr>  
          </table>  
          </body>  
          </html>  
          
          
          1. Hi Jürgen,

            Die Bilder rufe ich übrigens so auf:

            (...)

            Dann scheinen also wohl wirklich die Bilder "kaputt" zu sein - hast du die Thumbnails schon mal runtergeladen und versucht lokal zu öffnen/anzuschauen?

            MfG, Dennis.

            --
            Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
            Werbung ist der Versuch, das Denkvermögen des Menschen so lange außer Kraft zu setzen, bis er genügend Geld ausgegeben hat. (Ambrose Bierce)
            1. Dann scheinen also wohl wirklich die Bilder "kaputt" zu sein - hast du die Thumbnails schon mal runtergeladen und versucht lokal zu öffnen/anzuschauen?

              Ja, geht nicht! Es existieren keine!!!

              1. Hi Jürgen,

                Ja, geht nicht! Es existieren keine!!!

                Es werden keine Bilder gespeichert und es kommt keine Fehlermeldung? Das kann eigentlich nicht sein, sofern du Fehler nicht mit @ unterdrückst oder error_reporting falsch gesetzt ist.

                Sonst würde ich nämlich denken, dass dein Script auf ./bilder/thumbs/ keinen Schreibzugriff hat, setzt mal mit deinem FTP Programm entsprechende Rechte. 777 solltest du nur als allerletzte Alternative verwenden. Aber wenn das Script keine Schreibrechte hat, müsste eigenltich eine Fehlermeldung à la "Permission denied" kommen...

                MfG, Dennis.

                --
                Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
                That's life - Es gibt im Leben[tm] keine Zurück-Taste. (Fabian Transchel)