Forum

DynPG Forum

Foren

Login

Suchen

Forenübersicht - Allgemeines Forum - header('Content-Type: image/jpeg');

climber5

Beiträge: 26

header('Content-Type: image/jpeg');
Hallo Zusammen,

Ich habe versucht innerhalb der Website

http://www.jansens.ch/index.php?t=2

eine PHP Klasse zum Bilder verkleinern aufzurufen:

http://www.phpclasses.org/browse/file/4571.html


ich habe aber jetzt festgestelt, dass DynPG wohl bereits einen anderen Header sendet, und daher mein Bild als String anstatt als jpg-File dargestellt wird.

Die entsprechende Stelle im Code ist wohl in getcontent.php, ca. Zeile 468:

Zitat

function sendHTTPHeader($charset = 'iso-8859-1', $content_type = 'text/html', $additional = null)
{
$this->charset = $charset;

@header("Content-Type: {$content_type}; charset={$charset}");

if (! is_null($additional) ) {
@header($additional);
}
}


gibt es eine Möglichkeit wie ich mit dieser Funktion und evtl. der Variable $additional mein Bild darstellen könnte? oder bin ich komplett auf dem Holzweg?

Vielen Dank für eure Hilfe.

Grüessli
Christoph

06.01.2013 01:56

ZITIEREN | ANTWORTEN

Daniel Schliebner

Beiträge: 382

Hallo!

Unter dem Link sehe ich im Quellcode nicht, wo an der Stelle DynPG eingesetzt ist. Ist die Geschenklist ein DynPG-Formular?

Wie dem auch sei: um die resize.php nutzen zu können, binden Sie diese in quasi einem <img>-Tag als Source ein. D.h., Sie erstellen eine PHP-Seite "thumbnail.php", in der Sie die "resize.php" einbinden, sowie auch DynPG.

Anschließend können Sie dieses mittels "$thumb->show();", wobei $thumb eine Instanz der Klasse "thumbnail" ist, ausgeben. Der Header wird dann durch die Methode "show" gestzt.
Wenn das Bild, aus welchem ein Thumbnail erzeugt werden soll, nun einfach z.B. das Leadbild eines Artikels ist (z.B. ein Artikel mit dem Namen "Barmixer" und der ID 1), dann brauchen Sie zur Nutzung der thumbnail-Klasse aus der resize.php ja den Bildpfad. Dieses können Sie bekommen, indem Sie unter "tpl/MyCMS" im DynPG-Ordner ein neues Template erstellen, z.B. "image_path" indem Sie die Datei "detail.tpl" mit dem Inhalt
"{$IMAGE_URL}" anlegen. Anschließend können Sie in der "thumbnail.php" mittels


ob_start();
$DynPG->setupTemplate('image_path');
$DynPG->Write_Article();
$image_path = ob_get_contents();
ob_end_clean();


den Pfad auslesen und dann per


$thumb = new thumbnail($image_path);
$thumb->show();


das Bild ausgeben. Nun müssen Sie nur noch ein einer Stelle im HTML-Code das Thuhmbnail per

<img src="thumbnail.php?read_article=1" />

einbinden.
Mit freundlichen Grüßen

ds-develop
Daniel Schliebner
Webmaster & Programmierer
http://www.ds-develop.de

Bietzkestraße 18A
10315 Berlin
GERMANY

Tel.: +49 30 33980300

06.01.2013 10:21

ZITIEREN | ANTWORTEN

climber5

Beiträge: 26

Hallo Daniel,

Das hat bestens geklappt! So einfach wäre es gewesen... und ich hab ein bischen länger gebraucht.

Vielen Dank für de Phänomenalen Support, auch an einem Sonntag.

Gruss

Christoph

06.01.2013 11:19

ZITIEREN | ANTWORTEN

Daniel Schliebner

Beiträge: 382

Noch ein kleiner Hinweis: ich habe gesehen, dass an die thumbnail.php nun per Parameter "link" der Pfad zum Bild übergeben wird. Es ist demnach essentiell, dass dann auch die Validität des Pfades überprüft wird, weil das ansonsten ggf. Angreifern Tür und Tor öffnen könnte, Dateien auf dem Webserver auszuführen oder einzuschleusen. Eine mögliche Validitätsprüfung wäre in der thumbnail.php z.B.


if (!preg_match(/giftlibrary\/[^\.]+\.\w+/), $_GET['link']))
    die('Error.');
Mit freundlichen Grüßen

ds-develop
Daniel Schliebner
Webmaster & Programmierer
http://www.ds-develop.de

Bietzkestraße 18A
10315 Berlin
GERMANY

Tel.: +49 30 33980300

06.01.2013 14:14

ZITIEREN | ANTWORTEN

climber5

Beiträge: 26

Hallo Daniel,

Vielen Dank für den Hinweis!

Das habe ich mir in dem Moment nicht überlegt. Ich werde in Zukunft aber besser aufpassen.

Ich habe die Zeile jetzt aber wie folgt apassen müssen:

if (!preg_match( ' /giftlibrary\/[^\.]+\.\w+/ ' , $_GET['link']))die('Error.');

Ich habe das auch getestet, ich hoffe es stimmt jetzt noch?

06.01.2013 14:40

ZITIEREN | ANTWORTEN

Daniel Schliebner

Beiträge: 382

Hallo!

Ja, sorry, ich habe den Code nicht getestet und die Gänsefüssschen einfach vergessen. So ist es nun korrekt.
Mit freundlichen Grüßen

ds-develop
Daniel Schliebner
Webmaster & Programmierer
http://www.ds-develop.de

Bietzkestraße 18A
10315 Berlin
GERMANY

Tel.: +49 30 33980300

06.01.2013 14:45

ZITIEREN | ANTWORTEN