Hallo,
mit folgendem Uploadscript wird die ausgewählte Datei umbenannt und in den Order files hochgeladen dazu erfolgt der Datenbankeintrag mit Kommentar, Suppliername,Dateiname, Datum.
Ohne die Änderung zum hinzufügen des Textfeldes (suppliername) funktionierte das Script
Allerdings jetzt nicht mehr mit dem beigefügte erforderlichen Feld (Suppliername) finde den Fehler nicht.
Die Datei wird hochgeladen allerdings erfolgt kein DB Eintrag.
Hoffe mir kann jemand helfen.
Gruß und vorab schon vielen Dank für euere Hilfe.
mit folgendem Uploadscript wird die ausgewählte Datei umbenannt und in den Order files hochgeladen dazu erfolgt der Datenbankeintrag mit Kommentar, Suppliername,Dateiname, Datum.
Ohne die Änderung zum hinzufügen des Textfeldes (suppliername) funktionierte das Script
Allerdings jetzt nicht mehr mit dem beigefügte erforderlichen Feld (Suppliername) finde den Fehler nicht.
Die Datei wird hochgeladen allerdings erfolgt kein DB Eintrag.
Hoffe mir kann jemand helfen.
Gruß und vorab schon vielen Dank für euere Hilfe.
PHP-Code:
<?php
error_reporting(E_ALL);
require_once('verbindung.php');
// Maximale Dateigröße in MB
$maxfilesize = 2;
// 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','pdf','PDF',"xls","XLS");
/*####################################################################*/
// Variablen
$suppliername = '';
$dateiname = '';
$endung = '';
$orgname = '';
$allesok = '';
$fehler = '';
$komm = '';
$bildrs = "noch keines geladen";
$table = 'picture';
// 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,suppliername,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>";
// Funktion zum Eintrag in die Tabelle "picture"
function uploaddb($kommentar,$suppliername,$dateiname,$table,$id,$file){
if(!empty($id)) {
if (file_exists($file)) {
unlink($file);
}
$sql = sprintf("update $table set kommentar=%s, suppliername=%s, dateiname='$dateiname', datum=now()
where id=$id",$kommentar) or die ("SQL-Fehler = ".mysql_error());
} else {
$sql = sprintf("insert into $table (kommentar,suppliername,dateiname,datum)
Values (%s,%s,'$dateiname',now())",$kommentar,$suppliername) 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ß!';
}
}
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<html><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']),$suppliername,$dateiname,"picture",$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">
<p>
<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"><?php echo $komm;?></textarea>
<input type="hidden" name="id" value="<?php echo $id;?>" />
</p>
<p>
<input type="text" name="suppliername" id="suppliername" />
<br />
Bild: <? echo $bildrs;?><br>
<input type="submit" name="submit" value="Hochladen" />
</p>
</form>
<?php
}
?>
<br/><a href="uebersicht.php">Anzeige der Übersicht </a><br />
</body></html>
Kommentar