MyXoops Forum

Animated Gifs [Script-Workshop] - myXOOPS German Support

SectorErro

"myXOOPs"-Neuling
Gepostet am:06.11.2004 20:15
SectorErro
SectorErro Offline (Show more)
"myXOOPs"-Neuling
Posts: 2
Since: 06.11.2004
#1

Animated Gifs

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 ;)

Diesen Thread durchsuchen:  1 Anonyme Benutzer

Aktuell aus dem Forum

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