ftp_chdir übernimmt keine php-Parameter

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • ftp_chdir übernimmt keine php-Parameter

    Hallo,

    ich habe einen Dateiupload geschrieben. Als erstes erstellt der User einen Ordner in den dann die Upload-Files gespeichert werden. Das ganze läuft so: Der User erhält ein Eingabefeld in das er den Namen des Ordners, den er erstellt eingibt. Danach wird der Ordner erstellt und der Name wird mittels datei.php?ordner=ordnername übergeben. Es funktioniert auch alles soweit einwandfrei. Hier mein Script (Problemerklährung nach dem Script):

    <?php
    $FTPServer = "xxxxxxxxxx";
    $FTPUser = "xxxxxxxxxxx";
    $FTPPasswort = "xxxxxxxxx";

    $Od = $_GET["ordner"];

    $dir = "$Od";

    if($_REQUEST['Send'])
    {
    $VerbindungsID = ftp_connect($FTPServer);
    $LoginErgebnis = ftp_login($VerbindungsID, $FTPUser, $FTPPasswort);

    if($VerbindungsID && $LoginErgebnis)
    {

    $dir_chng_res=ftp_chdir($VerbindungsID, $dir);

    if (!$dir_chng_res) {
    echo "Wechsel zu Verzeichnis fehlgeschlagen: $ft_dir! <br>";
    die;
    }
    else {
    echo "Gewechselt zu Verzeichnis $ft_dir <br>";
    }

    $UploadErgebnis = ftp_put($VerbindungsID, $_FILES['Datei']['name'], $_FILES['Datei']['tmp_name'], FTP_BINARY);

    if($UploadErgebnis)
    {
    echo"Die Datei wurde hochgeladen!";
    }
    else
    {
    echo"Die Datei konnte nicht hochgeladen werden.";
    }

    ftp_quit($VerbindungsID);
    }
    else
    {
    echo"Es konnte keine Verbindung mit dem FTP-Server hergestellt werden.";
    }
    }
    else
    {
    ?>
    <form action="<?php echo$_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">
    <input name="Datei" type="file"><br>
    <input name="Send" type="submit" value="Upload">
    </form>
    <?php
    }

    ?>


    Es Funktioniert alles einwandfrei, solange ich bei $dir direkt den Namen des Ordners eingebe. Also z.B. $dir = "/Test"; .
    Ich will jedoch den zuvor übermittelten Parameter verwende, also $Od, da ich ja immer einen neuen Ordner anlege und die Dateien immer in den passenden Ordner gespeichert werden sollen. Also schreibe ich $dir = "/".$Od;

    So wird die Datei jedoch ins root-Verzeichnis gespeichert. Ich habe schon probiert ein Script zuvor den Ordnernamen so zu übergeben, das der wert als /Ordnername übergeben wird und ich dann $dir = $Od; eingebe.

    Jetzt bekomme ich folgenden fehler: Warning: ftp_chdir() [function.ftp-chdir]: This command require a paremeter.

    Kann mir jemand helfen, dass der Parameter vom Script angenommen wird?

    Vielen Dank

    Gruß

  • #2
    $Od = $_GET["ordner"];
    Ich gehe mal davon aus dass $_GET["ordner"] nicht gesetzt ist, da Du hier:
    <form action="<?php echo$_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">
    keine GET Parameter mit gibst
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Danke, jetzt funktioniert es. Ich dachte es reicht, wenn ich den Parameter von der vorherigen Seite verwende.
      Ich habe jetzt gerade bei

      <form action="<?php echo$_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">
      <input name="Datei" type="file"><br>
      <input name="Send" type="submit" value="Upload">
      </form>

      einen weiteren input eingefügt, also

      <form action="<?php echo$_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">
      <input name="Datei" type="file"><br>
      <input name="ordner" type="hidden" value="/<?php print $Od; ?>">
      <input name="Send" type="submit" value="Upload">
      </form>

      und jetzt funktionierts.

      Vielen Dank für deine Hilfe.

      Kommentar

      Lädt...
      X