<?php
error_reporting(E_ALL);
require_once('verbindung.php');
// Maximale Dateigröße in MB
$maxfilesize = 1;
// Datei-Feldname im Formular
$fieldname = 'bild';
// Wo soll die Datei hingeladen werden (Ordner)?
$uploaddir = 'files';
// erlaubte Endungen
$allowedfiletype = array('png','GIF','gif','jpg','jpeg','JPG','JPEG','txt');
/*####################################################################*/
$dateiname = '';
$endung = '';
$orgname = '';
$allesok = '';
$fehler = '';
$komm = '';
$bildrs = "noch keines geladen";
$table = 'bfgames';
// Variablen absichern
function quote_smart($value)
{
// Ueberfluessige Maskierungen entfernen
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
// In Anfuehrungszeichen setzen, sofern keine Zahl
// oder ein numerischer String vorliegt
if (!is_numeric($value)) {
$value = "'" . mysql_real_escape_string($value) . "'";
}
return $value;
}
// Wenn id übergeben wird, dann laden des Datensatzes
$id = isset($_REQUEST['id']) ? $_REQUEST['id'] : '';
if(!empty($id)) {
$asql=mysql_query("SELECT kommentar,dateiname FROM $table WHERE id=$id") or die(mysql_error());
$komm = mysql_result($asql,0,'kommentar');
$bildrs = $uploaddir."/".mysql_result($asql,0,'dateiname');
}
$ausgabe = "Maximale Größe: $maxfilesize MB<br />Erlaubte Endungen: <b>";
if(count($allowedfiletype) > 1){
$last = array_pop($allowedfiletype);
$ausgabe .= implode(', ', $allowedfiletype);
$ausgabe .= ' und '.$last;
}elseif(count($allowedfiletype) == 1) $ausgabe .= $allowedfiletype[0];
$ausgabe .= "</b>";
// Einfache Funktion zum Eintrag in die Tabelle "bfgames"
function uploaddb($kommentar,$dateiname,$table,$id,$file){
if(!empty($id)) {
if (file_exists($file)) {
unlink($file);
}
$sql = sprintf("update $table set kommentar=%s, dateiname='$dateiname', datum=now()
where id=$id",$kommentar) or die ("SQL-Fehler = ".mysql_error());
} else {
$sql = sprintf("insert into $table (kommentar,dateiname,datum)
Values (%s,'$dateiname',now())",$kommentar) or die ("SQL-Fehler = ".mysql_error());
}
$rs = mysql_query($sql);
if($rs){
return "<br/>Daten sind gespeichert<br/>";
} else {
return "<br/>Speicherung nicht möglich<br/>";
}
}
// Fehlerüberprüfung
// Splitten des Dateinamens Überprüfung der Endung
// Abfrage, ob Formular abgeschickt und splitten des Dateinamens
if(isset($_POST['send'])){
$allesok = 1;
$darray = explode('.', str_replace('/', '.', $_FILES[$fieldname]['name']));
if (count($darray) == 2) {
$orgname = trim($darray[0])."_".time();
$endung = trim(strtolower($darray[1]));
}
// Feldüberprüfung
if($_FILES[$fieldname]['error'] == 1){$allesok=0;
$fehler='Datei überschreitet die Uploadgröße in der php.ini ('.ini_get('upload_max_filesize').')!';
}
elseif($_FILES[$fieldname]['error'] == 3) {$allesok=0;
$fehler = 'Datei nur teilweise hochgeladen!';
}
elseif($_FILES[$fieldname]['error'] != 0) {$allesok=0;
$fehler ='Keine Datei ausgewählt!';
}
elseif(!in_array($endung, $allowedfiletype)) {$allesok=0;
$fehler = 'Endung nicht erlaubt!';
}
elseif(filesize($_FILES[$fieldname]['tmp_name'])/1024/1024 >= $maxfilesize) {$allesok=0;
$fehler = 'Datei zu groß!';
}
}
?>
<html><head><title>Upload</title>
</head><body>
<?php
// wenn alles ok dann Upload des Bildes
if($allesok){
// Dateiname prüfen und Zeichen ersetzen
$neuname = '';
for ($i=0; $i<strlen($orgname); $i++) {
$zz = substr($orgname, $i, 1);
if (!preg_match("/^[A-Za-z0-9-_]+$/i", $zz)) $zz = '_';
$neuname.= $zz;
}
// Monage des Dateinamens
$dateiname = $neuname.'.'.$endung;
// Upload
move_uploaded_file($_FILES[$fieldname]['tmp_name'], $uploaddir.'/'.$dateiname);
$dirname = dirname($_SERVER['PHP_SELF']);
$fileurl = 'http://'.$_SERVER['SERVER_NAME'].(substr($dirname, 0, 1) == '\\' ? substr($dirname, 1):$dirname).'/'.$uploaddir.'/';
$href = $fileurl.urlencode($dateiname);
$anzeigen = $fileurl.$dateiname;
// Formularwerte in der Datenbank speichern und Meldung ausgeben.
echo uploaddb(quote_smart($_POST['kommentar']),$dateiname,"bfgames",$id,$bildrs);
echo "<b>Datei wurde erfolgreich hochgeladen</b><br />
<a href=\"".$href."\">$anzeigen</a><br>";
}else{
// Ausgabe des Formulars
?>
<div style="color:red;"><?php echo $fehler; ?></div>
<?php print $ausgabe;?>
<br />
<h1>Formular</h1>
<form action="<?php echo $_SERVER['PHP_SELF']?>" enctype="multipart/form-data" method="post">
<input name="<?php echo $fieldname?>" type="file" size="40" />
<input type="hidden" name="send" value="send" /><br/>
Kommentar<br />
<textarea name="kommentar" cols="50" rows="10" id="kommentar"><? echo $komm;?></textarea>
<input type="hidden" name="id" value="<?php echo $id;?>" />
<br /> Bild: <? echo $bildrs;?><br>
<input type="submit" name="submit" value="Hochladen" />
</form>
<?php
}
?>
<br/><a href="uebersicht.php">Anzeige der Übersicht </a><br />
</body></html>