Seite 1 von 2

Probleme mit getImageSize (Mod:Resize Remote Avatars)

Verfasst: 16.11.2004 09:32
von lenni
Ich habe mir den Mod Resize Remote Avatars (http://www.phpbbhacks.com/viewhack.php?id=3201) installiert.

Lokal funktioniert er auch wunderbar (wenn ich das image auch
lokal liegen habe (http://localhost/...img.jpg)

Lade ich das ganze allerdings hoch und probiere es online aus,
bekomme ich immer "Avatar konnte nicht gefunden werden".

Ich vermute, es liegt daran, dass folgender Code nicht korrekt
ausgeführt wird: $size = @getimagesize( $url );

(die URL sieht dann wie folgt aus: http://www.xyz.de/.../bild.jpg)

Hat jemand eine Idee ?!

Vielen Dank im Voraus
Lenni

Verfasst: 16.11.2004 17:01
von itst
Vermutlich ist die GD-Extension nicht installiert/aktiviert. Hoster fragen bzw. phpinfo() nutzen.

Verfasst: 16.11.2004 17:10
von lenni
Anscheinend haben mehrere schon das Problem gehabt.

Hier ein Lösungsvorschlag:

Code: Alles auswählen

function getimagesize_remote($image_url) {
   $handle = fopen ($image_url, "rb");
   $contents = "";
   if ($handle) {
   do {
       $count += 1;
       $data = fread($handle, 8192);
       if (strlen($data) == 0) {
           break;
       }
   $contents .= $data;
   } while(true);
   } else { return false; }
   fclose ($handle);
 
   $im = ImageCreateFromString($contents);
   if (!$im) { return false; }
   $gis[0] = ImageSX($im);
   $gis[1] = ImageSY($im);
// array member 3 is used below to keep with current getimagesize standards
   $gis[3] = "width={$gis[0]} height={$gis[1]}";
   ImageDestroy($im);
   return $gis;
}
Expertenmeinungen?

Verfasst: 16.11.2004 19:52
von Christian_W
itst hat geschrieben:Vermutlich ist die GD-Extension nicht installiert/aktiviert. Hoster fragen bzw. phpinfo() nutzen.
Das dachte ich auch. Aber laut php.net geht das auch ohne GD:
http://de.php.net/manual/de/function.ge ... ]Anmerkung: Dieser Befehl funktioniert auch ohne GD-Bibliothek.[/quote]
Gruß Christian

Aus einem anderen Forum

Verfasst: 17.11.2004 10:44
von lenni
Bei mir funktioniert's nicht!
Auch der o.a. Code führt nicht zu dem gewünschten Ergebnis ...
Jemand noch eine Idee?

Anscheinend ein Bug ...
Angeblich gefixt...
http://www.acurainspired.com/forums/lof ... t2168.html
Aber ich weiss nicht, in welcher Version.
Anscheinend jedenfalls nicht in der Version, die bei meinem Provider läuft.
*grmpf*

edit Christian_W: mehrere Beiträge zusammengefügt. Nächstesmal bitte editieren

fixed this problem. It was not only affecting getimagesize(url) but also fopen(url...) and so on.

This was a problem with the fact I was using chroot apache. I had not given apache any way to do DNS so when it hit a url which included a domain name it choked. For OpenBSD I fixed this by copying /etc/resolv.conf into /var/www/etc/resolv.conf

-Rob
Hier verstehe ich leider nur Bahnhof... :cry:
Kann mir das jemand erklären? D.h. ggf. müsste ich mich an den Provider
wenden?

Re: Aus einem anderen Forum

Verfasst: 17.11.2004 11:31
von Christian_W
lenni hat geschrieben:Bei mir funktioniert's nicht!
Auch der o.a. Code führt nicht zu dem gewünschten Ergebnis ...
Wie und wo hast Du denn den oben geposteten Code eingefügt?
Welche phpBB-Version nutzt Du?
Welche PHP-Version läuft bei Dir? ( KB:phpinfo )

Gruß Christian

Re: Aus einem anderen Forum

Verfasst: 17.11.2004 11:49
von lenni
Christian_W hat geschrieben:Wie und wo hast Du denn den oben geposteten Code eingefügt?
Ich habe folgenden Hack installiert: http://www.phpbbhacks.com/viewhack.php?id=3201

Dort wird in der functions.php in einer neuen Funktion die Funktion getimagesize aufgerufen.
Das habe ich auskommentiert und o.a. Funktion aufgerufen (nat.,
nachdem ich die diese Funktion auch in der functions.php eingebaut habe).
Christian_W hat geschrieben:Welche phpBB-Version nutzt Du?

2.0.10
Christian_W hat geschrieben:Welche PHP-Version läuft bei Dir? ( <a href="/doku/kb/artikel.php?artikel=phpinfo" title="Dieser Artikel beschreibt, wie man wesentliche Daten der PHP-Konfiguration ermittelt." target="_blank" class="postlink">PHP Konfiguration ausgeben</a> )
Gruß Christian
PHP Version 4.3.8

Ist das eigentlich eine halbwegs "up2date" version?

Ich sehe gerade, dass bei mir "allow_url_fopen" auf "off" steht.
Kann ich das per ini_set ändern?

Wieso hat mein Provider diese Einstellung gewählt (default ist wohl on)?
Welche Gründe kann das wohl haben?

Gruß und Dank
lenni

Re: Aus einem anderen Forum

Verfasst: 17.11.2004 13:09
von Christian_W
lenni hat geschrieben:Dort wird in der functions.php in einer neuen Funktion die Funktion getimagesize aufgerufen.
Das habe ich auskommentiert und o.a. Funktion aufgerufen (nat.,
nachdem ich die diese Funktion auch in der functions.php eingebaut habe).
Also so:

Code: Alles auswählen

//    $size = @getimagesize( $url );
    $size = getimagesize_remote( $url );
Das wäre dann richtig und funktioniert bei mir auch.
lenni hat geschrieben:PHP Version 4.3.8
Ist das eigentlich eine halbwegs "up2date" version?
PHP 4.3.9 ist die neueste PHP4-Version (released 22-Sep-2004)
Damit ist die Version 4.3.8 recht aktuell.
lenni hat geschrieben:Ich sehe gerade, dass bei mir "allow_url_fopen" auf "off" steht.
Kann ich das per ini_set ändern?
Nein, das geht wohl nicht:
http://php3.de/ini-set
Das ist aber der Grund warum es nicht klappt.
lenni hat geschrieben:Wieso hat mein Provider diese Einstellung gewählt (default ist wohl on)?
Welche Gründe kann das wohl haben?
Frag das mal am besten Deinen Hoster. Wird wohl aus Sicherheitsgründen so sein: Bei google gefunden

Gruß Christian

Verfasst: 17.11.2004 13:13
von lenni
Vielen Dank für die Hilfe!

Damit hat sich das Thema Remote Avatare für mich wohl zunächst einmal erledigt :(

Gruß Lenni

P.S.

Code: Alles auswählen

//    $size = @getimagesize( $url ); 
    $size = getimagesize_remote( $url );
Genau so habe ich es auch gemacht.

Edit:

Unsere Änderung betrifft zur Zeit nur PHP 5. Sie können, falls Sie diese Option trotzdem nutzen möchten, eine php.ini mit folgenden Inhalt in das betreffende Verzeichnis des Scriptes ablegen:
allow_url_fopen = on


Heisst dass, ich kann eine php.ini in mein /includes Verzeichnis nur
mit dem obigen Eintrag legen, und dann funktioniert das? :o

Verfasst: 17.11.2004 13:26
von Christian_W
lenni hat geschrieben:Heisst dass, ich kann eine php.ini in mein /includes Verzeichnis nur
mit dem obigen Eintrag legen, und dann funktioniert das? :o
Ich denke nicht, dass das bei jedem Hoster möglich ist. => ausprobieren oder Hoster fragen.

Gruß Christian