MyXoops Forum

Forum - myXOOPS German Support

0 + 0 = ?  
Geben Sie das Ergebnis der Berechnung ein
Sie haben max. 10 Versuche.
 
* = Erforderlich

Animated Gifs

Betreff: Animated Gifs
von SectorErro am 06.11.2004 20:15:17

Hallo Leute,

bin Xoops- und PHP- Neuling. Aber ich wollte auch mal meinen Beitrag leisten. Also ich habe eine große Aversion gegen Animierte-Gif's in Community-Seiten. Soll man sich auf den Inhalt oder die Blinkebilder konzentrieren?

Naja, da ich meinen Leuten die Möglichkeit lassen wollte eigene Avatare runter zu laden, habe ich mir ein ziemlich properitäres Scriplet gebastelt und mal die uploader.php gehacked. (Naja eher einen hack versucht ;)

Also so siehts aus:

Die Funktion fetchMedia() in class/uploader.php habe ich wie folgt editiert!

Zitat:

function fetchMedia($media_name, $index = null)
{
global $HTTP_POST_FILES;
if (!isset($HTTP_POST_FILES[$media_name])) {
$this->setErrors('File not found');
return false;
} elseif (is_array($HTTP_POST_FILES[$media_name]['name']) && isset($index)) {
$index = intval($index);
$this->mediaName = (get_magic_quotes_gpc()) ? stripslashes($HTTP_POST_FILES[$media_name]['name'][$index]) : $HTTP_POST_FILES[$media_name]['name'][$index];
$this->mediaType = $HTTP_POST_FILES[$media_name]['type'][$index];
$this->mediaSize = $HTTP_POST_FILES[$media_name]['size'][$index];
$this->mediaTmpName = $HTTP_POST_FILES[$media_name]['tmp_name'][$index];
$this->mediaError = !empty($HTTP_POST_FILES[$media_name]['error'][$index]) ? $HTTP_POST_FILES[$media_name]['errir'][$index] : 0;
} else {
$media_name =& $HTTP_POST_FILES[$media_name];
$this->mediaName = (get_magic_quotes_gpc()) ? stripslashes($media_name['name']) : $media_name['name'];
$this->mediaName = $media_name['name'];
$this->mediaType = $media_name['type'];
$this->mediaSize = $media_name['size'];
$this->mediaTmpName = $media_name['tmp_name'];
$this->mediaError = !empty($media_name['error']) ? $media_name['error'] : 0;
}
$this->errors = array();
if (intval($this->mediaSize) < 0) {
$this->setErrors('Invalid File Size');
return false;
}
if ($this->mediaName == '') {
$this->setErrors('Filename Is Empty');
return false;
}
if ( preg_match( '/\.(php|cgi|pl|py|asp)$/i', $this->mediaName ) ) {
$this->setErrors('Filename rejected');
return false;
}
if ($this->mediaTmpName == 'none' || !is_uploaded_file($this->mediaTmpName)) {
$this->setErrors('No file uploaded');
return false;
}

//###### Hacked by Webmin
if ($this->mediaName != '') {

$filename = $this->mediaTmpName;
$handle = fopen ($filename, "rb");
$contents = fread ($handle, filesize ($filename));

$temp=bin2hex($contents);

$data=null;
$len = strlen($temp);
for ($i=0;$i<$len;$i+=2) $data.=chr(hexdec(substr($temp,$i,2)));
$anigif = strpos($data,"NETSCAPE2.0");

if ($anigif!=false)
{
$this->setErrors('Datei ist ein animiertes Gif! Webmin erlaubt Flimmerboxen nicht!');
return false;
}
fclose ($handle);

}

//###### Hacked by Webmin */



if ($this->mediaError > 0) {
$this->setErrors('Error occurred: Error #'.$this->mediaError);
return false;
}
return true;
}



Ich weiss es geht auch eleganter! Aber sollange es seinen Zweck erfüllt ;)


Aktuell aus dem Forum

Forum Thema Antworten Views Letzter Beitrag
Modulentwicklung New Xoops Xcreate Module 0 5322 26.11.2025 15:22
efkan Gehe zum letzten Beitrag
Modulentwicklung XOOPS Custom Field Module 1 1813 24.11.2025 11:21
Goffy Gehe zum letzten Beitrag