Leere Variable?

Greg77

Grünschnabel
Hallo zusammen,

ich habe ein Script zum Bilderupload, welches prinzipiell funktioniert. Dabei wird über ein Textfeld zuvor ein Dateiname ver- und übergeben. Das dies so ist, zeigt mir der echo Befehl.

Auch die Zeile in der der Dateiname zusammengestellt wird funktioniert einwandfrei, sofern ich die Auskommentierung lösche, und "xy" als Wert(Name) nutze -> z.B. xy.jpg. Verbinde ich nun beides, wie im Anschluß geschehen, so scheint die Variable testname leer, denn ein hochgeladenes Bild lautet z.B. ".jpg"

Wisst Ihr wie ich das Problem lösen kann? Herzlichen Dank!

PHP:
$testname = $_POST[artikelnummer];
echo $testname;


//$testname = "xy";
if($_POST["action"]){ 
	$filename = ""; 
	if ($_FILES['userfile']['tmp_name']<> 'none'){    
		$file = $_FILES['userfile']['name']; 
		$temp = $_FILES['userfile']['tmp_name']; 
		$path_parts = pathinfo($file);
		$filename = $testname . "." . $path_parts["extension"]; 
		if($_FILES['userfile']['size'] <= $groessemax*1024){
			if(decoct(fileperms($img_path_up))==40777){
				if(@copy($temp, $img_path_up.$filename)){ 
					echo '<div style="color:green;">Datei ist auf den Server!<br>'; 
					echo 'Url der Datei: <a href="http://'.$_SERVER['HTTP_HOST'].$path.$filename.'" target="_blank">http://'.$_SERVER['HTTP_HOST'].$path.$filename.'</a><br><br><a href="'.$_SERVER['PHP_SELF'].'">Eine weitere Datei auf den Server laden...</a><br><br></div>'; 
				} else {
					echo '<div style="color:red;">Die Datei konnte nicht auf den Server geladen werden. <a href="'.$_SERVER['PHP_SELF'].'">Noch mal versuchen...</a><br><br></div>';
				}
			} else {
				echo '<div style="color:red;">Der Upload Ordner hat keine Schreibrechte! <a href="'.$_SERVER['PHP_SELF'].'">Noch mal versuchen...</a><br><br></div>';
			}
		} else {
			echo '<div style="color:red;">Die Datei ist zu groß! Die Datei darf nicht größer als '.$groessemax.' KB (KiloByte) sein. <a href="'.$_SERVER['PHP_SELF'].'">Noch mal versuchen...</a><br><br></div>';
		}
	} 
}
 
Hallo zusammen, bin auf die Ursache gestossen. Zuerst der ganz Code inkl einem Formular, das mit "Schuld" war:

PHP:
$artikelnummer2 = $_POST[artikelnummer];
	echo $artikelnummer2;

PHP:
if($_POST["action"]){ 
	$testname = $_POST[arttest];
	$filename = ""; 
	if ($_FILES['userfile']['tmp_name']<> 'none'){    
		$file = $_FILES['userfile']['name']; 
		$temp = $_FILES['userfile']['tmp_name']; 
		$path_parts = pathinfo($file); 
		//$filename = "datei_" . time() . "." . $path_parts["extension"]; 
		$filename = $testname . "." . $path_parts["extension"]; 
		if($_FILES['userfile']['size'] <= $groessemax*1024){
			if(decoct(fileperms($img_path_up))==40777){
				if(@copy($temp, $img_path_up.$filename)){ 
					echo '<div style="color:green;">Datei ist auf den Server!<br>'; 
					echo 'Url der Datei: <a href="http://'.$_SERVER['HTTP_HOST'].$path.$filename.'" target="_blank">http://'.$_SERVER['HTTP_HOST'].$path.$filename.'</a><br><br><a href="'.$_SERVER['PHP_SELF'].'">Eine weitere Datei auf den Server laden...</a><br><br></div>'; 
				} else {
					echo '<div style="color:red;">Die Datei konnte nicht auf den Server geladen werden. <a href="'.$_SERVER['PHP_SELF'].'">Noch mal versuchen...</a><br><br></div>';
				}
			} else {
				echo '<div style="color:red;">Der Upload Ordner hat keine Schreibrechte! <a href="'.$_SERVER['PHP_SELF'].'">Noch mal versuchen...</a><br><br></div>';
			}
		} else {
			echo '<div style="color:red;">Die Datei ist zu groß! Die Datei darf nicht größer als '.$groessemax.' KB (KiloByte) sein. <a href="'.$_SERVER['PHP_SELF'].'">Noch mal versuchen...</a><br><br></div>';
		}
	} 
}

Code:
<form method="post" enctype="multipart/form-data" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
	<br><br><font color="#FFFFFF" size="1" face="Verdana, Arial, Helvetica, sans-serif">Die Datei darf nicht gr&ouml;&szlig;er sein als <?php if((maximaledateiuploadgroesseermitteln()/1024)>$groessemax) echo $groessemax; else echo (maximaledateiuploadgroesseermitteln()/1024);?> KB (KiloByte).</font><br><br>
	<input name="userfile" type="file" size="40"><br><br>
	<input name="arttest" type="hidden" value="<?echo $artikelnummer2?>">
	<input type="submit" name="action" value="Speichern">
</form>

Woran lags nun? Was wurde geändert?
- Zuerst hab ich die GET-Übergabe mit POST ersetzt, denn beim Wechsel von Webspace zu anderem Webspace wollte dies nicht mehr funktionieren (Noch keine Ursachenforschung betrieben.
- Dann der eigentliche Fehler: Der Wert muss zuerst ins Formular und von dort über POST in die if-Schleife.
 
Zurück