php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.02.2012, 18:12  
Neuer Benutzer
 
Registriert seit: 09.02.2012
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
Mauro befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] readfile mit $_GET Parameter für Bitmap in den Ausgabepuffer

Hallo Wissende,

ich möchte eine BITMAP Datei laden und in den Ausgabepuffer schreiben bzw. im Browser anzeigen. Das folgende kleine Skript macht genau das. Allerdings nur, wenn ich den Dateinamen hardcode. Kommentiert man dies in Zeile 4 aus und holt den Wert aus dem GET Parameter (Zeile 3), so sagt Firefox, dass das Bild beschädigt sei. Aber der Parameter sollte stimmen. Zum Debuggen habe ich den Aufruf von readfile ausgegeben, siehe Zeilen 7 ff.

PHP-Code:
<?php
header
('Content-type: image/bmp');
//$filename = $_GET["file"];
$filename "69330630_201202081745.bmp";
$path "../../../ftp/home/";
@
readfile($path.$filename);
// var_dump($path.$filename);
// Ausgabe von Zeile 7 (Zeilen 2, 4, 6 auskommentiert): string(43) "../../../ftp/home/69330630_201201081745.bmp"
// bei Aufruf mit image.php?file=69330630_201201081745.bmp
?>
Vermutlich ist es eine total einfache Sache, aber ich sehe es einfach nicht. Habe bereits viel gesucht und den Code auch schon mehrmals umgestellt. String-Verkettung habe ich schon in diversen Varianten gemacht. Auch den GET Parameter hatte mit htmlspecialchars gereinigt, obwohl das hier keine Rolle spielen sollte. Pfad absolut und relativ führt zum selben Problem.

Bin für jeden Hinweis dankbar!
__________________
hope for the best, take the rest, and expect what comes
Mauro ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.02.2012, 18:19  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

.bmp ist nun nicht gerade ein typisches Web-Bildformat..
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 09.02.2012, 18:23  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Das erste was ich testen würde wäre doch der Unterschied zwischen hart kodiertem Dateiname und GET-Parameter
PHP-Code:
var_dump($_GET["file"], "69330630_201202081745.bmp"$_GET["file"] == "69330630_201202081745.bmp"
Und bei "Bild beschädigt" Fehlermeldungen einfach mal den Content-type Header weglassen, um die Ausgabe und damit die Fehlermeldung im Klartext zu sehen.
fab ist gerade online   Mit Zitat antworten
Alt 10.02.2012, 08:14  
Neuer Benutzer
 
Registriert seit: 09.02.2012
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
Mauro befindet sich auf einem aufstrebenden Ast
Standard BMP als Bildformat, weiteres Debuggen

Ja, das stimmt mit BMP. Allerdings habe ich auf das Originalformat erst einmal keinen Einfluss. Hat wohl im Moment auch nichts mit meinem Problem zu tun. Später werde ich das sicherlich mal konvertieren.

Ansonsten Danke für den Tipp mit dem erweiterten var_dump, werde ich sofort probieren. Hier das Ergebnis:

string(25) "69330630_201201081745.bmp" string(25) "69330630_201202081745.bmp" bool(false)

War ja logisch zu erwarten und hat mich auf den Fehler geführt. Wenn wir alle genau geschaut hätten, dann wäre uns eine kleine Eins aufgefallen, die Namen waren also tatsächlich unterschiedlich. Vielen Dank, das Problem ist gelöst und ich habe gelernt, dass man in var_dump auch logische Vergleiche machen kann.
__________________
hope for the best, take the rest, and expect what comes

Geändert von Mauro (10.02.2012 um 08:45 Uhr).
Mauro ist offline   Mit Zitat antworten
Alt 10.02.2012, 08:42  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

weil du Blind bist ?

string(25) "69330630_201201081745.bmp" string(25) "69330630_201202081745.bmp" bool(false)

??? na, siehst du es jetzt selbst ? im GET-Parameter wird ein anderer Name übermittelt, als du erwartest -- da wird das nie was werden

einfach mal für die Zukunft merken: Computer KÖNNEN NICHT LÜGEN - wenn du Fehlermeldungen nicht unterdrücken würdest (@) ... dann geb ich dir Brief und Siegel darauf, dass (zumindest im Http-Log) eine Fehlermeldung "file not found" oder sowas kommt.
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

Geändert von eagle275 (10.02.2012 um 08:45 Uhr).
eagle275 ist offline   Mit Zitat antworten
Alt 10.02.2012, 09:11  
Neuer Benutzer
 
Registriert seit: 09.02.2012
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
Mauro befindet sich auf einem aufstrebenden Ast
Standard

eagle275 gehört tatsächlich der Preis, er hat den Fehler gesehen. Aber fab hat mir einen weiteren Weg für's Debuggen in PHP gezeigt, das hilft viel mehr und hat ja auch geholfen. Was die restlichen Kommentare von eagle275 angeht, nun ja. Kann ja jeder mal für sich nachdenken, warum ich den Code in genau dieser Form gepostet habe. Wie gesagt, ich hatte ihn schon systematisch variiert.
__________________
hope for the best, take the rest, and expect what comes
Mauro ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Warning: mysql_result() expects parameter 1 to be resource, boolean given FloRic Datenbanken 8 19.10.2009 20:15
Parameter überschreiben Igäl PHP Tipps 2006 8 04.06.2006 19:55

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
readfile get parameter, html content type bitmap bmp, php parameterübergabe per readfile, bitmap header weglassen, bitmap als parameter, php read file with parameters, php ausgabepuffer, php readfile $_get

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:04 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum