ChaosRacer
Grünschnabel
Hallo,
habe auf meiner Homepage ein Uploadscript. Mit dem Firefox funktioniert soweit alles nur der IE zeigt mir mein Formular nicht an. Wie kann ich das ändern, finde den Fehler nicht. Hier der Code:
Außerdem hätte ich noch zusätzlich gerne eine Funktion, wo ich in ein voreingestelltes Verzeichnis uploaden kann und einen Button, womit ich nen Upload abbrechen kann.
Wer kann mir helfen?
Gruß
ChaosRacer
habe auf meiner Homepage ein Uploadscript. Mit dem Firefox funktioniert soweit alles nur der IE zeigt mir mein Formular nicht an. Wie kann ich das ändern, finde den Fehler nicht. Hier der Code:
PHP:
<?php
// Einstellungen für das Script
$AdminPasswort = "passwort"; // Upload Passwort
$AdminEmail = "email"; // Admin Email
$AdminNotify = 1; // Admin per Email informieren wenn eine Datei heruntergeladen wurde (1 = Ja | 0 = Nein)
$PfadZumScript = "pfad zum script"; // Komplette Webadresse zum Script
$Dateiendungen = array( "zip", "rar", "7z", "pdf", "jpg", "jpeg", "mp3", "wav", "mid", "doc", "xls", "html", "htm", "ufo"); // erlaubte Dateiendungen
$StandardBetreff = "Eine neue Datei von "; // Standardbetreff falls kein Betreff im Formular angegeben wurde
/* ******************************************************** */
/* ******* Ab hier nichts mehr ändern ******* */
/* ******************************************************** */
// Email auf Format pruefen
function checkEmail( $email )
{
$nonascii = "\x80-\xff";
$nqtext = "[^\\\\$nonascii\015\012\"]";
$qchar = "\\\\[^$nonascii]";
$normuser = '[a-zA-Z0-9][a-zA-Z0-9_.-]*';
$quotedstring = "\"(?:$nqtext|$qchar)+\"";
$user_part = "(?:$normuser|$quotedstring)";
$dom_mainpart = '[a-zA-Z0-9][a-zA-Z0-9._-]*\\.';
$dom_subpart = '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*';
$dom_tldpart = '[a-zA-Z]{2,5}';
$domain_part = "$dom_subpart$dom_mainpart$dom_tldpart";
$pattern = "$user_part\@$domain_part";
if (!preg_match( "/^$pattern$/", $email ))
{
return FALSE;
}
else
{
return TRUE;
}
}
// DownloadLink fuer den Mailbody
function getDownloadLink( $DownloadHash )
{
global $PfadZumScript;
return <<<DOWNLOADLINK
Der nachfolgende Abschnitt wurde automatisch generiert.
{$_FILES['datei']['name']} wurde von auf Ihren Server geladen. Sie können diese Datei unter dem folgenden Link herunterladen:
{$PfadZumScript}index.php?aktion=download&datei={$DownloadHash}
Sollten Sie keine HTML-eMails empfangen können, kopieren Sie bitte den oben genannten Link in Ihren Internet-Browser.
DOWNLOADLINK;
}
/* ---------------------------------------- */
/* --- Maximale Uploadgroesse ermitteln --- */
/* ---------------------------------------- */
// Die Funktionen dieses Abschnitts stammen
// von http://www.webmaster-resource.de
function PHPINIWertUmwandeln( $Groesse )
{
$Werte['MB'] = 1048576;
$Werte['Mb'] = 1048576;
$Werte['M'] = 1048576;
$Werte['m'] = 1048576;
$Werte['KB'] = 1024;
$Werte['Kb'] = 1024;
$Werte['K'] = 1024;
$Werte['k'] = 1024;
while (list( $Schluessel ) = each( $Werte ))
{
if ((strlen( $Groesse ) > strlen( $Schluessel )) && (substr( $Groesse, strlen( $Groesse ) - strlen( $Schluessel )) == $Schluessel ))
{
$Groesse = substr( $Groesse, 0, strlen( $Groesse ) - strlen( $Schluessel ) ) * $Werte[$Schluessel];
break;
}
}
return $Groesse;
}
function UploadmoeglichkeitPruefen()
{
$Uploadmoeglichkeit = TRUE;
if (strtolower( @ini_get( 'file_uploads' ) ) == 'off' || @ini_get( 'file_uploads' ) ==0)
{
$Uploadmoeglichkeit = FALSE;
}
return $Uploadmoeglichkeit;
}
function MaximaleDateiuploadGroesseErmitteln()
{
$MaximaleDateiuploadGroesse = 0;
if ($Dateigroesse = ini_get( 'upload_max_filesize' ))
{
$MaximaleDateiuploadGroesse = PHPINIWertUmwandeln( $Dateigroesse );
}
if ($Postgroesse = ini_get( 'post_max_size' ))
{
$Postgroesse = PHPINIWertUmwandeln( $Postgroesse );
if ($Postgroesse < $MaximaleDateiuploadGroesse)
{
$MaximaleDateiuploadGroesse = $Postgroesse;
}
}
return $MaximaleDateiuploadGroesse;
}
function UploadLimit()
{
if (UploadmoeglichkeitPruefen())
{
$MaximaleDateiuploadGroesse = MaximaleDateiuploadGroesseErmitteln();
echo "<span style=\"color: #FFFFFF; font-size: 0.8em; font-weight: normal;\">(max. Dateigröße: " .number_format( $MaximaleDateiuploadGroesse / 1024, 0, ",", "." ). " KB)</span>";
}
}
// --------------------------------------------------------------
// ------ HAUPTSCRIPT BEGINNT HIER ------
// --------------------------------------------------------------
if (isset( $_GET['aktion'] ) )
{
switch ($_GET['aktion'])
{
// ------------------------------
// --- Neue Datei hochladen ---
// ------------------------------
case 'senden':
if (isset( $_POST['send_file'] ) &&
$_POST['admin_passwort'] == $AdminPasswort &&
$_FILES['datei']['size'] > 0 !== false)
{
// Maskierung entfernen
if (get_magic_quotes_gpc())
{
$_POST = array_map( 'stripslashes', $_POST );
}
// Pruefen ob die Dateiendung erlaubt ist
$UploadDateiEndung = array_pop( explode( ".", strtolower( $_FILES['datei']['name'] ) ) );
if (!in_array( $UploadDateiEndung, $Dateiendungen ))
{
die( "Die angehängte Datei hat eine nicht erlaubte Dateiendung!" );
}
// Dateiendung ok
$ersetzen = array( 'ä' => 'ae', 'ö' => 'oe', 'ü' => 'ue', 'ß' => 'ss', ' ' => '_' );
$DateiNameNeu = strtr( strtolower( $_FILES['datei']['name'] ), $ersetzen );
$DownloadHash = md5( $DateiNameNeu );
$umask_alt = umask( 0 );
if (@move_uploaded_file( $_FILES['datei']['tmp_name'], $DateiNameNeu ))
{
// Mail Header
$MailHeader = "From:{$AdminEmail}<{$AdminEmail}>\n";
$MailHeader .= "MIME-Version: 1.0\r\n";
$MailHeader .= "Content-Type: text/html\n";
$MailHeader .= "Content-Transfer-Encoding: 8bit\n";
$MailHeader .= "Message-ID: <" .time(). " noreply@" .$_SERVER['SERVER_NAME']. ">\r\n";
$MailHeader .= "X-Mailer: PHP v" .phpversion(). "\r\n";
// Mail Betreff
$MailBetreff = strlen( $_POST['mail_betreff'] ) > 3 ? htmlspecialchars( $_POST['mail_betreff'] ) : $StandardBetreff;
// Mail Body
$MailBody = nl2br( htmlspecialchars( $_POST['mail_text'] ) );
$MailBody .= getDownloadLink( $DownloadHash );
if (!@mail ( $AdminEmail, $MailBetreff, $MailBody, $MailHeader ))
{
$MailSendFehler = true;
}
// CHMOD setzen
@chmod( $DateiNameNeu, 0755 );
umask( $umask_alt );
header( 'location: ' .$_SERVER['PHP_SELF']. '?status=UploadOK' );
}
else // Upload-Fehler
{
umask( $umask_alt );
header( 'location: ' .$_SERVER['PHP_SELF']. '?status=UploadERROR' );
}
}
elseif ($_POST['admin_passwort'] != $AdminPasswort)
{
$PasswortERROR = true;
}
break;
// -----------------------------
// --- Datei herunterladen ---
// -----------------------------
case 'download':
if (isset( $_GET['datei'] )&&
strlen( $_GET['datei'] ) == 32)
{
// Falls ein Trottel die Index-Datei runterladen will
if ($_GET['datei'] == md5( "index.php" ))
{
die( "Nice try ;-)" );
}
// angeforderte Datei ermitteln
foreach (glob( "*.*" ) as $Dateiname)
{
if ($_GET['datei'] == md5( $Dateiname ))
{
$DateiDownload = $Dateiname;
}
}
if ($DateiDownload)
{
// Datei senden und ggfs Admin benachrichtigen
header( "Content-Type: application/octet-stream" );
header( "Content-Disposition: attachment; filename=\"" .$DateiDownload. "\"" );
header( "Content-Length: " .filesize( $DateiDownload ) );
header( "Pragma: no-cache" );
header( "Expires: 0" );
readfile( $DateiDownload );
// Benachrichtigung an Admin senden
if ($AdminNotify)
{
// Mail Header
$MailHeader = "From:{$AdminEmail}<{$AdminEmail}>\n";
$MailHeader .= "MIME-Version: 1.0\r\n";
$MailHeader .= "Content-Type: text/html\n";
$MailHeader .= "Content-Transfer-Encoding: 8bit\n";
$MailHeader .= "Message-ID: <" .time(). " noreply@" .$_SERVER['SERVER_NAME']. ">\r\n";
$MailHeader .= "X-Mailer: PHP v" .phpversion(). "\r\n";
// Mail Body
$AdminMailBody = "Soeben wurde die Datei {$DateiDownload} heruntergeladen.<br>";
@mail( $AdminEmail, "FileSend Datei wurde heruntergeladen", $AdminMailBody, $MailHeader );
}
}
else
{
$DownloadERROR = true;
}
}
break;
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<BODY bgcolor="#000000" style= alink="#000099" link="red" vlink="#999999">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Upload-Bereich von </title>
<style type="text/css">
<!--
* { margin: 0; padding: 0; }
body { text-align: center; font: normal 62.5% Verdana, Arial, Helvetica, sans-serif;}
#rahmen { width: 500px; margin: 1.5em auto; text-align: left; }
fieldset { padding: 0px 15px; border: solid 1px #FF0000; }
legend { font: bold 1.8em "Courier New", Courier, monospace; color: #FF0000; }
label { display: block; font-size: 1.2em; font-weight: bold; margin-top: 1.0em; color: #FF0000; }
input { width: 250px; }
textarea { width: 400px; height: 160px; }
input.file { width: 400px; }
input.button { width: 150px; margin: 25px 0px 20px 128px; }
h1 { font: bold 2.2em Arial, Helvetica, sans-serif; margin-bottom: 1.2em; text-align: center; }
h3 { font: bold 1.2em Verdana, Arial, Helvetica, sans-serif; }
p { font-size: 1.2em; text-align: justify; }
.hinweis { color: #FF0000; }
-->
</style>
<script type="text/javascript">
<!--
function checkForm()
{
var Fehlermeldung = "";
if (document.FileSend.admin_passwort.value == "")
{
Fehlermeldung += "Bitte das Passwort für den Upload eingeben!\n";
}
if (document.FileSend.datei.value == "")
{
Fehlermeldung += "Bitte eine Datei für den Upload auswählen!\n";
}
if (Fehlermeldung)
{
alert(Fehlermeldung);
return false;
}
else
{
return true;
}
}
// -->
</script>
<script type="text/javascript">
function showWaitMessage() {
document.getElementById("submitDiv").style.display = "none";
document.getElementById("waitingDiv").style.display = "block";
document.getElementById("progressBar").innerHTML = "<img alt='Bitte warten...' src='progressbar.gif' />";
}//fu
</script>
<script language="JAVASCRIPT" type="TEXT/JAVASCRIPT">
<!--
var win=null;
function NewWindow(mypage,myname,w,h,pos,infocus){
if(pos=="random"){myleft=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;mytop=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;}
if(pos=="center"){myleft=(screen.width)?(screen.width-w)/2:100;mytop=(screen.height)?(screen.height-h)/2:100;}
else if((pos!='center' && pos!="random") || pos==null){myleft=0;mytop=20}
settings="width=" + w + ",height=" + h + ",top=" + mytop + ",left=" + myleft + ",scrollbars=yes,location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no";win=window.open(mypage,myname,settings);
win.focus();}
// -->
</script>
</head>
<body>
<div id="rahmen">
<h1><font color="#FFFFFF"><script type="text/javascript">
H=new Date(); H.getHours(); S=H.getHours(); var a="";
if(S>12 ) {a="Guten Morgen,"};
if(S<=18 && S>=12) {a="Guten Tag,"};
if(S<=05) {a="Guten Abend,"};
document.write(a)
</script>
user</font></h1>
<div id="waitingDiv" style="display:none">
<div id="rahmen">
<fieldset>
<legend>Bitte warten...</legend>
<br>
<center><div id="progressBar"><img alt="Bitte warten..." src="progressbar.gif"></center><p><hr noshade size="1"><br><font color="#FFFFFF" size="2">Die Upload-Geschwindigkeit ist abhängig von der Internetverbindung. Dateien mit mehreren MB (50, 100 oder mehr) dauern selbst mit DSL seine Zeit! Bitte abwarten bis eine Rückmeldung unter "Upload Meldungen" erscheint.</font></p><p style="margin: 20px 0px; color: #FFFFFF;">Zur Kontrolle findet ihr hier einen kleinen "Up- & Downloadrechner". Der Rechner wird in einem Pop-Up geöffnet. Bitte den Pop-Up Blocker für diese Funktion kurzzeitig deaktivieren.</p><center><input name="B1" value="Up- & Downloadrechner" onclick=
"NewWindow('http://pfad zum pop-up.html','mypopup','700','500','center','front');" type=
"button"><br><br></center></div><br>
</fieldset>
</form>
</div><br>
<div id="submitDiv">
<div id="rahmen">
<fieldset>
<legend>Upload Meldungen</legend>
<br>
<?php
// Upload-Meldungen
if ($_GET['status'] == 'UploadOK') echo '<h3><span class="hinweis">Hinweis:</span> <font color="#FFFFFF">Die Datei wurde erfolgreich übertragen!</font></h3><br>';
if ($_GET['status'] == 'UploadERROR') echo '<h3><span class="hinweis">F E H L E R:</span> <font color="#FFFFFF">Die Datei konnte nicht übertragen werden!<br>Bitte stellen Sie sicher daß das Uploadlimit nicht überschritten wurde!</font></h3><br>';
if ($PasswortERROR) echo '<h3><span class="hinweis">Hinweis:</span> <font color="#FFFFFF">Das angegebene Passwort ist nicht korrekt!</font></h3><br>';
if ($MailSendFehler) echo '<h3><span class="hinweis">Hinweis:</span> <font color="#FFFFFF">Beim senden der eMail trat ein Fehler auf!</font></h3><br>';
// Download-Meldung
if ($DownloadERROR) echo '<h3><span class="hinweis">Hinweis:</span> <font color="#FFFFFF">Die angeforderte Datei konnte nicht gefunden werden!</font></h3><br>';
?></fieldset>
</form>
</div><br>
<div id="rahmen">
<fieldset>
<legend>Fertige Uploads</legend>
<p style="margin: 20px 0px; color: #FFFFFF;">Alle fertigen Uploads bleiben max. 30 Tage auf dem Server erhalten. Danach werden diese in der Regel automatisch gelöscht. Bei weiteren Fragen wenden Sie sich an den Administrator!<br><br>
<?php
// tabelle
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";
echo "<tr style=\"font-weight:bold;\">\n";
echo " <td style=\"width:200px;color:#ffffff;font-size:10pt;\">Dateiname</td>\n";
echo " <td style=\"width:200px;color:#ffffff;font-size:10pt;\">Größe in KB</td>\n";
echo " <td style=\"width:200px;color:#ffffff;font-size:10pt;\">Upload am</td>\n";
echo "</tr>\n";
// fuer alle .jpg bilder zB sowas:
// foreach(glob(".jpg") as $datei) {
foreach(glob("{*.zip,*.rar,*.7z,*.pdf,*.jpg,*.jpeg,*.mp3,*.wav,*.doc,*.xls,*.html,*.htm}", GLOB_BRACE) as $datei) {
// groesse
$groesse = filesize($datei)/1024;
// letzte aenderung
$aenderung = date("d.m.y, H:i:s", filemtime($datei));
if($i%2 == 0) {
echo "<tr>\n";
} else {
echo "<tr style=\"background-color:#000000; color:#000000\">\n";
}
echo " <td style=\"width:200px;font-size:8pt;\"><a href=\" " .$datei . "\">" . $datei . "</a></td>\n";
echo " <td style=\"width:200px;font-size:8pt;color:#ffffff;\">".round($groesse, 2)."</td>\n";
echo " <td style=\"width:200px;font-size:8pt;color:#ffffff;\">" . $aenderung . "</td>\n";
echo "</tr>\n";
$i++;
}
echo "</table>\n";
?>
<br><br>
</p>
</fieldset>
</form>
</div><br>
<div id="rahmen">
<fieldset>
<legend>Up- & Downloadrechner</legend>
<p style="margin: 20px 0px; color: #FFFFFF;">Hier findet ihr einen kleinen "Up- & Downloadrechner". Mit diesem Rechner könnt ihr vor dem Upload die ungefähre Ladezeit einer Datei ermitteln.</p><center><input name="B1" value="Up- & Downloadrechner" onclick=
"NewWindow('http://chaosracingteam.bplaced.net/upload/updown.html','mypopup','700','500','center','front');" type=
"button"><br><br></center>
</fieldset>
</form>
</div><br>
<div id="rahmen">
<form name="FileSend" id="FileSend" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>?aktion=senden" enctype="multipart/form-data" onsubmit="showWaitMessage();">
<fieldset>
<legend>Neuer Upload</legend>
<p style="margin: 20px 0px; color: #FFFFFF;">Die mit * (Stern) gekennzeichneten Felder sind "Pflichtfelder" und sind für einen fehlerfreien Datei-Upload zwingend erforderlich. Der Upload kann je nach Verbindungsgeschwindigkeit mehrere Minuten in Anspruch nehmen. Bitte das Fenster in dieser Zeit NICHT schließen, da sonst der Upload unterbrochen wird!<br><br></p>
<label for="admin_passwort">Passwort*:</label><input type="password" name="admin_passwort" id="admin_passwort" />
<label for="mail_text">Nachricht:</label><textarea name="mail_text" id="mail_text"><?php echo $_POST['mail_text']; ?></textarea>
<label for="datei">Datei für den Upload: <?php UploadLimit(); ?></label><input type="file" name="datei" id="datei" size="50" class="file" /><br /><font color="#FFFFFF">Erlaubte Dateitypen: <br>zip, rar, 7z, pdf, jpg, jpeg, mp3, wav, doc, xls, html, htm, ufo</font><br><br><br>
<p><font color="#FFFFFF">Die Upload-Geschwindigkeit ist abhängig von der Internetverbindung. Dateien mit mehreren MB (50, 100 oder mehr) dauern selbst mit DSL seine Zeit!
Auch wenn es den Anschein macht, das sich nichts mehr tut, bitte abwarten bis eine Rückmeldung im oberen Bereich unter "Upload Meldungen" erscheint.<br></font></p>
<input type="submit" name="send_file" id="send_file" value="Upload & eMail senden" class="button" onClick="return checkForm();" />
</fieldset>
</form>
</div><br><br>
</body>
</html>
Außerdem hätte ich noch zusätzlich gerne eine Funktion, wo ich in ein voreingestelltes Verzeichnis uploaden kann und einen Button, womit ich nen Upload abbrechen kann.
Wer kann mir helfen?
Gruß
ChaosRacer