Bilder verschieden groß anzeigen.

shorty

Erfahrenes Mitglied
Hi,
habe auf einer Seite, an der ich gerade arbeite eine Mitgliederliste, in der Name, Alter, usw...und auch ein Bild des User angezeigt wird. Diese Bild lasse ich in verschiedenen Größen anzeigen, damit meine Tabelle nicht gesprengt und das Bild auch immer "richtig" angezeigt wird.

das wäre dann dieser Code-Schnipsel:

PHP:
....
// $pic wird aus einer Datenbank ausgelesen, in der die Url des Bildes (also: http://www.xxx.de/bild.jpg) ausgegeben wird.
$imageinfo=getimagesize($pic);
if(($imageinfo[1]-$imageinfo[0])>=0) {
$new_height="136";
$div=$imageinfo[1]/$new_height;
$new_width=$imageinfo[0]/$div;
eval("\$userliste_userliste_picbit .= \"".gettemplate("userliste_userliste_picbit")."\";");
} else {
$new_width="180";
$div=$imageinfo[0]/$new_width;
$new_height=$imageinfo[1]/$div;
eval("\$userliste_userliste_picbit .= \"".gettemplate("userliste_userliste_picbit")."\";");
}
....

Das Problem ist, dass moment sich zwei User in der Datenbank befinden und beim ersten dieser Code auch greift, sprich es wird richtig ausgeben. Beim zweiten jedoch, kommt dann halt, dieser Fehler:
Warning: Division by zero in /www/htdocs/..../.../userliste.php on line 95.
Ich frag mich jetzt nur, warum $div gleich 0 ist, wenn ich $pic bei jedem neuen Durchlauf in der while-Schleife neu fülle und der Code wieder die Werte des neuen Bildes annimmt. Kann mir das jemand erklären?

Danke schonmal im Voraus

Mfg Shorty
 
Zuletzt bearbeitet:
Ich würde mal spontan darauf tippen, dass der Pfad aus der Datenbank nicht
richtig ankommt. Dadurch liefert getimagesize() keine konkreten Rückgabewert.
Dadurch wiederum ist bedingt, dass beim Aufruf von
$div=$imageinfo[1]/$new_height;
$imageinfo[1] nicht gesetzt ist, also definiert PHP halt kurzerhand die Variable
und sie hat den Wert 0. Dadurch wird $div 0 und im nächsten Schritt teilst du
durch $div und das Chaos ist perfekt.

Lass dir zum überprüfen am besten mal via echo den Pfad zum Bild vorher
ausgeben und evtl. auch direkt das Bild mal ausgeben, ob nicht ein Schreibfehler
oder ähnliches im Pfad ist.
 
Erstmal danke für die schnelle Antwort. Ein Schreibfehler kann dabei nicht zustande kommen, da der User selber ein Bild hochladen kann und nach dem Hochladen, wird autoamtisch die Url zum Bild in die Datenbank gespeichert. Dies wird von PHP selber generiert.
Ich werde es aber trotzdem machen, um jeden möglichen Fehler auszuschließen.
 
Zuletzt bearbeitet:
Vielleicht solltest du die Maßangaben wirklich als integer Zahlen abspeichern:

  $new_height = 136;

  $new_width = 180;
 
das werde ich gleich probieren, danke :).
Habe es mal zum Test ausgegeben und dies kommt dabei heraus:

User Nr. 2 (dieses Bild hat die Maße 80x97):
pic: http://www.xxx.info/thumb2/userbilder/riddler.jpg
Breite:
Höhe:

User Nr. 1:
pic: http://www.xxx.info/thumb2/userbilder/M4110201_klein2.JPG
Breite: 182
Höhe: 206
 
Zuletzt bearbeitet:
Das Skript soll unterscheiden, wie groß ein Bild ist und es dann in der "richtigen" Größe anzeigen. ("Richtig" ist deshalb in Anführungszeichen geschrieben, weil du keine genaue Angabe ist.)
 
Zurück