• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Wert aus $_POST bleibt leer

MadMax777

Neues Mitglied
Hallo,

ich verwende in einem Formular ein Eingabefeld vom Typ "File"

PHP:
<form name="hochladen" action="<?php print $slink; ?>" method="post" enctype="multipart/form-data">
  <p><?php echo $Text; ?><br>
    <input name="datei" type="file" size="50">
    <?php echo"<input type='submit' name='hochladen' value=".$Button.">"; ?><br>
    <input name="dname" type="text" size="50"><br>
    <?php echo $Text2; ?> </p>
</form>

Wenn ich dieses Feld mit
PHP:
$source_file = $_POST['datei'];
abfragen möchte, bekomme ich nur einen leeren Inhalt zurück.

Frage: Wieso? ;)
 
Wenn das Script nicht mit Sessions arbeitet, dann muss man keine Session starten.

Du musst dein Script Schritt für Schritt debuggen. Wird in der action die richtige Datei geladen? Trage dort einmal die Datei ein, an die die Werte übertragen werden sollen von Hand ein. Eventuell liegt hier der Fehler. Wie sieht es bei dname aus? Wird dieser Wert übertragen?
 
Wenn das Script nicht mit Sessions arbeitet, dann muss man keine Session starten.

Du musst dein Script Schritt für Schritt debuggen. Wird in der action die richtige Datei geladen? Trage dort einmal die Datei ein, an die die Werte übertragen werden sollen von Hand ein. Eventuell liegt hier der Fehler. Wie sieht es bei dname aus? Wird dieser Wert übertragen?

Das Feld "dname" wird über tragen. Es wird nur nicht das Feld "datei" nicht übertragen.

Meine Vermutung ist, ja zur Zeit das man Felder vom Typ "FILE" mit $_POST nicht übertragen kann. Nur wenn ich das mit $_FILES mache wird nur der Dateiname übertragen aber nicht der Pfad.
 
Warum soll denn ein Dateiname übertragen werden? Diesen bekommst du doch, wenn sich die Datei auf dem Server befindet. Musst du dann nur noch auslesen und mit explode() ausgeben.
 
uuuups, drüber gelesen.

so muss es klappen:
PHP:
<form name="hochladen" action="<?php print $slink; ?>" method="post">
  <p><?php echo $Text; ?><br>
    <input name="datei" type="file" size="50">
    <br>
    <input name="dname" type="text" size="50"><br>
        <input type='submit' name='hochladen' value="<?=$Button?>">

    <?php echo $Text2; ?> </p>
</form>
du encryptest nicht das form.........

besser ist es so:
PHP:
<form name="hochladen" action="<?php print $slink; ?>" method="post" enctype="multipart/form-data">
  <p><?php echo $Text; ?><br>
    <input name="datei" type="file" size="50">
    <br>
    <input name="dname" type="text" size="50"><br>
    <input type='submit' name='hochladen' value="<?=$Button?>">

    <?php echo $Text2; ?> </p>
</form>
PHP:
$source_file = $_FILES['datei']['name'];
 
Zuletzt bearbeitet von einem Moderator:
Nochmal von Anfang an

So ich hab jetzt nochmal ganz von vorne angefangen. Und was soll ich sagen es klappt immer noch nicht.

Hier kommt nochmal der momentane komplette Code für die Seite:

PHP:
<?php
		if ($lan=="d") {
			$Text="Wähle die Datei für den Dienstplan aus:";
			$Text2="";
			$Button="Hochladen";
		} else if ($lan=="e") {
			$Text="Please choose the file for the schedule:";
			$Text2="For searching with a filebrowser please click on 'Durchsuchen...'-Button!";
			$Button="Upload";
		}

?>

<?php


if (isset($_POST['hochladen']))
{

	if(!move_uploaded_file($_FILES['Datei']['tmp_name'],$_SERVER['DOCUMENT_ROOT'].$_FILES['Datei']['name']))
	{
		echo 'Es hat NICHT geklappt ...<br><br>';
		echo 'TMP-File: '.$_FILES['Datei']['tmp_name'].'<br>';
		echo 'Name: '.$_FILES['Datei']['name'].'<br>';	
		echo 'Größe: '.$_FILES['Datei']['size'].'<br>';
		echo 'Typ: '.$_FILES['Datei']['type'].'<br>';
	} else
	{
		echo 'Es hat geklappt ...<br><br>';
		echo 'TMP-File: '.$_FILES['Datei']['tmp_name'].'<br>';
		echo 'Name: '.$_FILES['Datei']['name'].'<br>';	
		echo 'Größe: '.$_FILES['Datei']['size'].'<br>';
		echo 'Typ: '.$_FILES['Datei']['type'].'<br>';
	}
}

?>

<?php

	$slink = 'index.php?seite='.$seite.'&seite2='.$Dienstplan2.'&lan='.$lan;

?>

<form name="hochladen" action="<?php print $slink; ?>" method="post" enctype="multipart/form-data">
  <p><?php echo $Text; ?><br>
    <input name="Datei" type="file" size="50" maxlength="100000" accept="text/*">
    <input type="submit" name="hochladen" value="<?php echo $Button; ?>">
    <br>
    <?php echo $Text2; ?> </p>
</form>
 
Ich habe jetzt nicht ganz vrestanden was nicht funktioniert...
Wird immer dein Fehlertext ausgegeben?
Überprüfe ob du in den Ordner schreiben darfst (CHMOD) oder du darfst keine Dateien über PHP hochladen.
 
Ich habe jetzt nicht ganz vrestanden was nicht funktioniert...
Wird immer dein Fehlertext ausgegeben?
Überprüfe ob du in den Ordner schreiben darfst (CHMOD) oder du darfst keine Dateien über PHP hochladen.

Ach ja :)

Es waren die blöden Schreibrechte in dem Ordern ;) Jetzt funktioniert alles.

DANKE !!!!!
 
Zurück
Oben