copy() fehler

Uli_87

Erfahrenes Mitglied
Guten Tag,

Ich habe einen Problem mit meinem PHP-Script:

PHP:
<?PHP
include 'param.php';
$menu = $_GET['menu'];
$titel = $_POST['titel'];
$reienfolge = $_POST['reienfolge'];
$txt = $_POST['text'];
$text = str_replace("\n","<br>",$txt);
$darstellung = $_POST['darstellung'];
$file1tempname = $_FILES['file1']['tmp_name'];  
$file1name = $_FILES['file1']['name']; 
$file1type = $_FILES['file1']['type'];  
$file1size = $_FILES['file1']['size']; 
$file2tempname = $_FILES['file2']['tmp_name'];  
$file2name = $_FILES['file2']['name']; 
$file2type = $_FILES['file2']['type'];  
$file2size = $_FILES['file2']['size'];
if (isset($file1name)) {
if($file1size > "5000000") {  
    $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 5 MB!";  
}  
if(empty($err)) {  
    copy("$file1tempname", "upload/$file1name");  
}  
}
if (isset($file2name)) {
if(empty($err)) {  
    copy("$file2tempname", "upload/$file2name");  
} 
} 
$sqlconnessione = mysql_connect($host, $username, $password) or die("Verbindungsfehler");
if (!mysql_select_db($db, $sqlconnessione)){
   die ("Keine verbindung zur DB");
}else{
 $sql = "INSERT INTO novicom_inhalt (pagename,reienfolge,titel,file1,file2,text,darstellung) VALUES ('$menu','$reienfolge','$titel','$file1name','$file2name','$text','$darstellung')";
 $result = mysql_query($sql)or die("<b>Query Fehler $sql</b>".mysql_error());
 mysql_close($sqlconnessione);
 print "<meta http-equiv=\"refresh\" content=\"2;URL=index.php?menu=$menu\">";
 }
?>

Warum versucht er den copy() zu machen wenn die Variable $file1name leer ist?

Vielen Dank
Uli
 
Zuletzt bearbeitet:
isset() prueft nicht ob die Variable gefuellt ist, sondern nur ob sie existiert.
Du solltest also das
PHP:
if (isset($file1name))
und das
PHP:
if (isset($file2name))
in das
PHP:
if (!empty($file1name))
und das
PHP:
if (!empty($file2name))
umaendern.
 
Mach das copy() einfach in einer Bedingung:

PHP:
if( copy($file1tempname, "upload/".$file1name) ) {
   echo 'Upload erfolgreich';
} else {
   echo 'Fehler beim Upload';
}

Du könntest auch vorher prüfen ob das File leer ist. Z.B: mit file() (ob das File exisitert), mit der FileSize Eigenschaft oder mit empty().

// EDIT:
Irgendwie bin ich heute immer zu langsam. ;)
 
Zurück