PHP Klassen auslagern?

fcgphilipp

Grünschnabel
Hi ihr da draussen

MeineImage Klasse:

Code:
class image {

var $uri;
var $url;
var $type;
var $breite;
var $bild;
var $path;

function image ( $uri,$url,$type,$breite ) {
  $this->uri = $uri;
  $this->url = $url;
  $this->type = $type;
  $this->breite = $breite;

  $this->path = 'http://kundenserver.smde.net/_developing/MUJE_CMS_2006/_frontend/_media/pixel.jpg';
}

function resize() {
  $orig = @imagecreatefromjpeg($this->path);
  $orig_w = imagesx($orig);
  $orig_y = imagesy($orig);

  $temp = $orig_w/$this->breite;
  $thumb_w = $this->breite;
  $thumb_h = round($orig_y/$temp);

  $this->bild = ImageCreateTrueColor($thumb_w, $thumb_h);

  imagecopyresampled($this->bild, $orig, 0, 0, 0, 0, $thumb_w, $thumb_h, $orig_w, $orig_y);
}

function show() {
  $this->resize();
  imagejpeg($this->bild, '', 98);
}

}


Nach 24 Stunden intensivem rumprobieren stehe ich nun vor dem Problem: Und zwar läuft die Klasse nur, wenn sie im selben Script steht, wie sie aufgerufen wird. Wenn ich ne neue Datei erstellen, die via include einbinde, dann kommt, die "Grafik kann net angezeigt werden, weil sie Fehler enthält". Meine Datei in der ich die Klasse aufrufen will sieht so aus:

Code:
header ("Content-type: image/jpeg");
include ('_class/variables.class.php');
$image = new image ('',$_GET["url"],$_GET["type"],$_GET["breite"]);
$image->show();


Aber ich werde verrückt dabei,wieso geht das nur in der sleben Datei!
 
Lasse zur Fehlerdiagnose mal den header() weg und rufe die Datei auf.... möglicherweise erhältst du dann einen Hinweis auf die Fehlerursache.
 
Diese "neue Datei", wo du die Klasse einbindest.... bist du sicher, dass diese Datei selbst keine Ausgabe hat.... nicht mal ein Leerzeichen.
 
Bei mir daheim funktioniert das problemlos :confused:

Das erzeugte Bild bei mir unterscheidet sich von deinem dahingehend, dass bei deinem 4 Zeichen mehr drin sind.... ganz zum Anfang(diese dürften die Fehlerursache sein).

En Detail sind das 2 Tabulatoren gefolgt von 2 Leerzeichen.... wo die bei dir herkommen? Keine Ahnung.
Sie müssen m.E. irgendwo nach dem includen und vor dem Aufruf von show() entstehen... wo genau, kann ich nicht sagen, da es bei mir wie gesagt funktioniert.

Falls du die Zeichen nirgends findest könntest du den Output buffern, und zu Beginn von show() löschen....vielleicht hilfts ja:)
 
ok. Danke für deine Hilfe. Es hat funktioniert, aber warum, ich weiß es net... Habe einfach den Codekopiert den ich hier im Forum hatte, und jetzt gehts :-)
 
Zurück