Dateityp - Beschränkung bei PHP-Upload erzeugt Fehlermeldung

ahykes

Erfahrenes Mitglied
Hallo Leutz,

habe mal das Tutorial mit dem File-Upload per PHP-Formular ausprobiert und bekomme dabei eine Fehlermeldung bezüglich der Einschränkung des Dateityps. Wenn ich die dazugehörige Stelle im Quelltext auskommentiere, kann ich alles was ich will hochladen...aber das soll ja nett so sein..Hier also mein Code :

PHP:
if($type != "image/gif" && $type != "image/jpeg") { 
 $err[] = "Nur gif und jpeg Dateien dürfen hochgeladen werden."; 
 } 
 if($size > "500000") { 
 $err[] = "Die maximale Dateigrosse beträgt 500 KB!";
 } 

if(empty($err)) { 
    copy("$tempname", "$name"); 
} 
else { 

    echo "Fehler<br>"; 
}  

if ($_POST['note_url'] == '-keine Seite-')
{
	$note_url = '';
}

Es kommt folgende Fehlermeldung :
Parse error: parse error, unexpected T_VARIABLE in D:\apachefriends\xampp\htdocs\SUDDEN_2005\pages\writenote.php on line 12 :suspekt:
 
Ich glaube, das liegt an dem "if(empty($err))".
Ersetz das mal durch:
PHP:
if(count($err) == 0)
Soweit mir bekannt ist, wird empty auf Variablen angewandt, da kann es sein, dass es mit 'nem Array Probleme gibt!
Die Funktion count() zählt die Anzahl der Elemente in dem Array und liefert 0 zurück, wenn es leer ist. Das sollte also den gleichen Zweck erfüllen, ...

redlama
 
Hallo, leider hat das auch nichts gebracht! ...hhmm Trotzdem schonmal danke...Komisch, dabei hatte ich den QT aus einem Tutorial von dieser Seite...hihi
 
Kann ja auch sein, dass ich mich irre, ...
Aber sag mal, welche ist denn die Zeile 12?
Die Fehlermeldung sagt schließlich, dass da der Fehler liegt, ...

redlama
 
Das ist genau die Zeile zwischen dem Datenbank-Passwort und der Variable $tempname...und da steht nichts drin!
 
Ich sehe keine Zeile mit einem Datenbank-Passwort in Deinem Code, ...
Und meinst Du mit "und der Variable $tempname" diese Zeile "copy("$tempname", "$name");"?
Oder hast Du da ein weng Code rausgenommen? Dann zeig mal den ganzen Code, ...

redlama
 
PHP:
<?
$dbconnect=mysql_connect("xxx","xxx","x");
mysql_select_db("admin"); 
<------------------------------------------------------------------------ZEILE 12
$tempname = $_FILES['datei']['tmp_name']; 
$name = $_FILES['datei']['name'];
$type = $_FILES['datei']['type']; 
$size = $_FILES['datei']['size'];

$note_name = $_POST[note_name];
$note_content = $_POST[note_content];
$note_date = date("d.m.Y");
$time = date("H.i");
$note_url = $_POST[note_url];
$note_picture = $name;

if($type != "image/gif" && $type != "image/jpeg") { 
 $err[] = "Nur gif und jpeg Dateien dürfen hochgeladen werden."; 
 } 
 if($size > "500000") { 
 $err[] = "Die maximale Dateigrosse beträgt 500 KB!";
 } 

if(count($err) == 0) { 
    copy("$tempname", "$name"); 
} 
else { 

    echo "Fehler<br>"; 
}  

if ($_POST['note_url'] == '-keine Seite-')
{
	$note_url = '';
}


$sql_befehl = "INSERT INTO `guests` (`date`, `time`, `name`, `url`, `note`, `picture`) VALUES ('$note_date', '$time', '$note_name', '$note_url', '$note_content', '$note_picture')"; 
mysql_query($sql_befehl,$dbconnect);
 $url = 'guests.php';
 header("Location: ".$url);
 exit;
 ?>
Sorry, hast recht...
 
Warum hast Du in folgendem Code die ' weggelassen?
PHP:
$note_name = $_POST[note_name]; 
$note_content = $_POST[note_content]; 
[...]
$note_url = $_POST[note_url];
Die würde ich rein nehmen, also so:
PHP:
$note_name = $_POST['note_name']; 
$note_content = $_POST['note_content']; 
[...] 
$note_url = $_POST['note_url'];
Ansonsten habe ich in Deinem Code nichts gesehen, was auf einen Fehler rückführen könnte, ...

redlama
 
Schade, das wärs doch jetzt gewesen....aber leider war es nicht so. Habe das geändert, aber der Fehler blieb der selbe. Sowas blödes. Naja, dann muss ich mir was einfallen lassen... Vielen Dank trotzdem.
 
Einfach lassen würde ich es nicht!
Wenn das übrigens Zeile 12 war, dann hast Du die ersten 8 Zeilen nicht gepostet, richtig?
Machmal liegt der Fehler ganz woanders, ...
Versuch doch mal immer kleine teile auszukommentieren und schau (am besten mit echos), wie weit Du kommst und wo er Dich raushaut!
So versuche ich immer meinen Fehlern auf die Schliche zu kommen, ...

redlama
 
Zurück