per ftp datei lesen, aendern und speichern

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

  • per ftp datei lesen, aendern und speichern

    ich hoffe ich bin hier richtig.
    ich moechte versuchen eine datei von einem anderen server mittels ftp zu oeffen so das diese geaendert und wieder gespeichert werden kann.
    liegt die datei auf dem selben server wie das web geht das ja, aber wie mach ich das wenn die datei auf einen anderen server liegt?

    momentan hab ich das fuer lokale dateien:


    PHP-Code:
    <?php



    $datei
    =$_POST["datei"];

    ?>



    <form target="_self" method="post" name="datei">
    <td><font color="#0066FF">Datei bearbeiten:</td>
           <td width="340" bgcolor="#333333">
          <select name="datei">
              <option value="<? echo $_SESSION['username'];?>/<? echo $_SESSION['usertype'];?>/extraordner/datei1">Datei1</option>
              <option value="<? echo $_SESSION['username'];?>/<? echo $_SESSION['usertype'];?>/extraordner/datei2">Datei1</option>
              <option value="<? echo $_SESSION['username'];?>/<? echo $_SESSION['usertype'];?>/extraordner/datei3">Datei1</option>
              <option value="<? echo $_SESSION['username'];?>/<? echo $_SESSION['usertype'];?>/extraordner/datei4">Datei1</option>
              <option value="<? echo $_SESSION['username'];?>/<? echo $_SESSION['usertype'];?>/extraordner/datei5">Datei1</option>
            </select></td>
    <input type="submit" value="Zeigen">

    </form><br>
    <br>
    <?




    echo "$datei";



    $file = "$datei";

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

    $datei_speichern = fopen($file, "w");
    $_POST['text'] = htmlentities(stripslashes($_POST['text']));
    if(fwrite ($datei_speichern, $_POST['text'])){
    echo "Gespeichert<br/>";
    }else{
    echo "Fehler<br/>";
    }
    fclose($datei_speichern);

    }

    echo "<form name=\"form1\" method=\"post\">";
    echo "<textarea name=\"text\" cols=\"90\" rows=\"30\">";
    echo file_get_contents($file);
    echo "</textarea><br/>";
    echo "<input type=\"hidden\" value=\"$datei\" name=\"datei\">";
    echo "<input type=\"submit\" name=\"gesendet\" value=\"Speichern\"/>";
    echo "</form>";


    ?></center>
    <!-- Textfeld Ende -->
        </td>
      </tr></font>
    </table>
    Zuletzt geändert von sisko123; 29.08.2008, 16:46.

  • #2
    ftp

    Kommentar


    • #3
      jo. thx. hab das problem schon geloest.

      Kommentar


      • #4
        Dann poste doch bitte die Lösung für andere.

        Kommentar


        • #5
          hab mich bei php.net sehr durchwuehlen muessen (bin ja noob), daher kommt einiges einigen vielleicht bekannt vor.
          also fuer das datei holen und anzeigen hab ich folgendes gemacht:

          PHP-Code:
          <?

                  $ftp_server = "ip"; 
                  $ftp_user_name = "user"; 
                  $ftp_user_pass = "passw";

          $conn_id = ftp_connect($ftp_server); 

          $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 


          if ((!$conn_id) || (!$login_result)) { 
                  echo "Die gewuenschte Datei konnte nicht geladen werden!";
                  //echo "Verbindungasufbau zu $ftp_server mit Username $ftp_user_name versucht."; 
                  exit; 
              } else {
                 // echo "Verbunden zu $ftp_server mit Username $ftp_user_name";
              }


          if (ftp_chdir($conn_id, "/pfad/zur/datei")) {
              echo "Gewaehlte Datei liegt im Verzeichnis: " . ftp_pwd($conn_id) . "\n";
          } else { 
          echo "Verzeichnis-Wechsel ist fehlgeschlagen.\n";
          }

          $datei="datei.txt";
          $lokal="tmp/username_dateiname.txt";
          $mode = FTP_BINARY;


                  if (ftp_get($conn_id, $lokal, $datei, $mode)) {
                      echo "Download erfolgreich $lokal\n";
                  } else {
                      echo "Download fehlgeschlagen\n";
                  }
                 


          ftp_close($conn_id);

          ?> 


          <?php



          $datei
          =$_POST["datei"];

          ?>



          <form target="_self" method="post" name="datei">
          <td><font color="#0066FF">Configs bearbeiten:</td>
                 <td width="340" bgcolor="#333333">
                <select name="cfg">
                    <option value="./tmp/username_dateiname.txt">Dateiname</option>


                  </select></td>
          <input type="submit" value="Zeigen">

          </form><br>
          <br>

          <?

          echo "$datei";



          $file = "$datei";

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

          $datei_speichern = fopen($file, "w");
          $_POST['text'] = htmlentities(stripslashes($_POST['text']));
          if(fwrite ($datei_speichern, $_POST['text'])){
          echo "<i>   -- Änderungen erfolgreich gespeichert --</i><br/>";
          }else{
          echo "<i>   -- Fehler beim speichern --</i><br/>";
          }
          fclose($datei_speichern);

          }

          echo "<form name=\"form1\" method=\"post\">";
          echo "<textarea name=\"text\" cols=\"90\" rows=\"30\">";
          echo file_get_contents($file);
          echo "</textarea><br/>";
          echo "<input type=\"hidden\" value=\"$datei\" name=\"datei\">";
          echo "<input type=\"submit\" name=\"gesendet\" value=\"Speichern\"/>";
          echo "</form>";

          ?>
          nach dem speichern geht sie wieder hoch:

          PHP-Code:
          <?php

          $ftp_server 
          "ip"
                  
          $ftp_user_name "user"
                  
          $ftp_user_pass "passw";



          $file 'tmp/username_dateiname.txt';
          $remote_file 'datei.txt';





          $conn_id ftp_connect($ftp_server);


          $login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);



          if (
          ftp_chdir($conn_id"/pfad/zum/zielordner")) {
              echo 
          "Gewaehlte Datei wurde in folgenden Verzeichnis gespeichert: " ftp_pwd($conn_id) . "\n";
          } else { 
          echo 
          "Verzeichnis-Wechsel ist fehlgeschlagen.\n";
          }


          if (
          ftp_put($conn_id$remote_file$fileFTP_ASCII)) {
           echo 
          "Upload erfolgreich $file\n";
          } else {
           echo 
          "Upload fehlgeschlagen $file\n";
          }


          ftp_close($conn_id);
          ?>
          nun muss ichnur noch herrausfinden wie ich das einrichte das beim klick auf dem speichern-button gleich die datei wiedre hochgeladen wird.

          Kommentar

          Lädt...
          X