Noch kleines Problem mit Upload

dragonlord

Erfahrenes Mitglied
Hallo zusammen,

also das Datei Upload-Script was ich gebastelt habe Funktionert tadelos:
PHP:
# VARIABLEN übernehmen
				$bezeichnung = $HTTP_POST_VARS["bezeichnung"];
				$kategorie = $HTTP_POST_VARS["kategorie"];
	$preis= $HTTP_POST_VARS["preis"];
				$datum = $HTTP_POST_VARS["datum"];
	$verfasser = $HTTP_POST_VARS["verfasser"];
				$text = $HTTP_POST_VARS["text"];
	$wertung= $HTTP_POST_VARS["wertung"];
	#Bild Upload:
	$tempname = $_FILES['bild_NA']['tmp_name'];
				$name = $HTTP_POST_FILES['bild_NA']['name'];
				$type = $_FILES['bild_NA']['type']; # Dateityp
				$size = $_FILES['bild_NA']['size']; # Dateigrösse
 
	if($type != "image/gif" && $type != "image/pjpeg") {
	   $err[] = "Nur gif und jpeg Dateien dürfen hochgeladen werden.";
	} 
	if($size > "100000") { 
	   $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 100 KB!";
	} 
	
	if(empty($err)) { 
	   copy("$tempname", "img/$name");
	   echo "</u><font color=\"#FFFFFF\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><strong>Die Datei $name wurde erfolgreich hochgeladen!</strong></font><br> \n";
	} 
	else { 
	   foreach($err as $error) 
	   echo "$error<br>"; 
	} 
	 # Damit kein Dateiname 2 mal vorkommt um die Datei inkrementel umbenannt werden:-----------------------
				$fp=fopen("inkr.txt","r"); # aktuellen Inkrement aus Textdatei Lesen:
				$CurrInkr=fgets($fp,100);
				
				$NewInkr= $CurrInkr + 1; # Gelesenen Inkrement um eins hochsetzen
				
				$fp = fopen("inkr.txt", "w");  # Den neuen Inkrement wieder in die Textdatei schreiben:
				fwrite($fp,$NewInkr);
				fclose($fp);
				# Welcher Dateityp wurde übermittelt?:
				if($type = "image/gif"){
						 $NewFileName = "image$NewInkr.gif";  # Datei ist eine GIF-Datei
						 }
				if($type = "image/pjpeg"){
						 $NewFileName = "image$NewInkr.jpeg";  # Datei ist eine JPEG-Datei
						 }
				rename ("img/$name","img/$NewFileName"); # Datei inkrementel umbenennen
	 # --------------------------------------------------------------------------------------------------------
	 
		   # Bildmase bestimmen:
		$img_size = GetImageSize ("img/$NewFileName");
		if ($img_size[0]>250){
		 echo "<font color=\"#CCCCCC\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"> \n";
		 echo "Das Bild ist aber grösser als 250 Pixel. Dein Beitrag konnte deshalb auch nicht</font><br> \n";
		 echo "gespeichert werden. <strong>[Bildanlage wurde aus dem Speicher entfernt]</strong></font><br> \n";
		 unlink ("img/$NewFileName");
		 }
		  else {
				 #DB öffnen:
				include ("dbconnect.php"); # DB Auth. inludieren
			   $connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Keine Verbindung möglich!");
				mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht oeffnen.");
	
			   $eintrag = "INSERT INTO parts (bezeichnung,kategorie,bild_NA,text,wertung,verfasser,preis,datum) VALUES ('$bezeichnung','$kategorie','$NewFileName','$text','$wertung','$verfasser','$preis','$datum')";
				if (mysql_query ($eintrag)) {
				echo "<font color=\"#CCCCCC\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"> \n";
				echo "Beitrag wurde erfolgreich gespeichert!</font> \n";
				} else {
				print ("Es traten Probleme auf. Beitrag konnte nicht gespeichert werden "  );
				echo mysql_errno() . ": " . mysql_error(). "\n";
				}
				mysql_close ($connection); }

So das einzigste ist jetzt noch:
Wenn der User KEINE Datei ausgewählt hat. Dann kommt noch eine Fehlermeldung.
Ist ja klar da er keinen Pfad findet.
D.h. ich muss vorher die Variable $name überprüfen pb sie Leer ist wenn ja dann soll das
Datei-Handling übergangen werden.

Aber wie mache ich das?
Ich habe schon

- if $name = ""
- if $name = " "
- if (empty($name)

Probiert, aber leider klappt das nicht. Kann mir da jemand helfen?

Gruss
dragonlord
 
ich würde jetzt spontan dazu raten:
PHP:
/* irgendwelcher Codemüll */
if(isSet($file)) {
//mach was mit der Datei
}
else {
//sagste dem User mal, er soll gefälligst das Script richtig nutzen. So gehts jawohl nicht hier!
}
 
if ($_FILES['bild_NA']['name'] != '') {
Das ist gut. Nur wo setzte ich das hin. Ich blick da irgendwie nicht durch.
Da kommen dann die gfanzen ELSE und } Klammer durcheiander.?
 
Zurück