tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
449
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    PHP-Fan PHP-Fan ist offline Mitglied Gold
    Registriert seit
    Jun 2005
    Beiträge
    171
    Hallo,

    ich habe eine Tabelle, wo in einer Spalte alle URLs zu Downloads sind, die sich aber auf einem anderen Server befinden, der aber auch mir gehört. Ich möchte gerne, diese Werte auslesen (schon geschen), eine FTP Verbindung aufbauen (schon geschehen) und alle Dateien auf dem Server, die keinen Eintrag in der Datenbank haben, sollen entfernt werden. Ich habe hier nocheinmal ein Bild für euch um das etwas zu verdeutlichen!

    http://fortunafan.com/tut.jpg

    Mein bisheriger Code:

    PHP-Code:
    <div align="center">

    <?

    require("xx.php");

    $dbverbindung mysql_connect($server$user$password);

    $dbanfrage "SELECT * from cm_dl_info ORDER BY id";

    $result mysql_db_query ($dbname$dbanfrage$dbverbindung);

    while (
    $ausgabe mysql_fetch_array ($result)){

    ?>

    -> <b><? echo $ausgabe[link]; ?></b><br>

    <?                               $ftp_server "bumbum.org";
                                
    $ftp_user_name "fx";
                                
    $ftp_user_pass "x";
                                
    $destination_file "$filename.torrent";
                                
    $source_file "$filename.torrent";

                                
    // Herstellen der Basis-Verbindung
                                
    $conn_id ftp_connect("$ftp_server");

                                
    // Einloggen mit Benutzername und Kennwort
                                
    $login_result ftp_login($conn_id"$ftp_user_name""$ftp_user_pass");

                                
    // Verbindung überprüfen
                                
    if ((!$conn_id) || (!$login_result)) {
                                      echo 
    "FTP Verbindung nicht hergestellt!<br>";
                                    echo 
    "Verbindung mit $ftp_server als Benutzer $ftp_user_name nicht möglich<br>";
                                die;
                                    } else {
                                
    ftp_pasv $conn_idtrue );
                                    echo 
    "Passiv-Modus eingeschaltet...<br>";
                                       echo 
    "FTP Verbindung hergestellt...<br>";
                                    }
                                    
                                
    // Datei löschen
                                
    unlink("$filename.torrent");
                                    
                                
    // Schließen des FTP-Streams
                                
    ftp_quit($conn_id);

                                

    }

    ?>
    Wie mache ich am besten weiter?
    Weiß nicht was ich jetzt wo machen soll...
    Bin gerade leicht überfordert, hoffe Ihr könnt mir helfen!
     

  2. #2
    soyo soyo ist offline Mitglied Brillant
    Registriert seit
    Apr 2006
    Beiträge
    794
    liegen die Dateien auf dem Server alle in einem Ordner?
     

  3. #3
    PHP-Fan PHP-Fan ist offline Mitglied Gold
    Registriert seit
    Jun 2005
    Beiträge
    171
    Ja sie befinden sich alle im gleichen Ordner.
    Das macht die sache gleich unkomplizierter hoffe ich...
     

  4. #4
    Avatar von blount
    blount blount ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Beiträge
    310
    Hallo PHP-Fan,

    wie wäre es mit:
    PHP-Code:
    if (!file_exists($ausgabe["link"])){
    // Dateieintrag in der Datenbank löschen
    mysql_query("DELETE FROM tabelle WHERE linkname= '".$ausgabe["link"]."'"$verbindung);


    //Edit
    Dieses Beispiel dient dazu alte Links in
    der Datenbank zu löschen falls diese keine
    entsprechenden Dateien auf dem Server haben.

    mfg,
    blount
    Geändert von blount (21.09.06 um 00:36 Uhr)
     
    :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

    :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

  5. #5
    PHP-Fan PHP-Fan ist offline Mitglied Gold
    Registriert seit
    Jun 2005
    Beiträge
    171
    Was bitte? Das wäre es schon?
     

  6. #6
    PHP-Fan PHP-Fan ist offline Mitglied Gold
    Registriert seit
    Jun 2005
    Beiträge
    171
    Vielen Dank schon einmal für eure Hilfe...
    Neues Problem:

    Derzeiter Code:

    PHP-Code:
    <div align="center">

    <?

    require("xx.php");

    $dbverbindung mysql_connect($server$user$password);

    $dbanfrage "SELECT * from cm_dl_info ORDER BY id";

    $result mysql_db_query ($dbname$dbanfrage$dbverbindung);

    while (
    $ausgabe mysql_fetch_array ($result)){

    ?>

    -> <b><? echo $ausgabe[link]; ?></b><br>

    <?                               $ftp_server "bumbum.org";
                                
    $ftp_user_name "fx";
                                
    $ftp_user_pass "x";
                                
    $destination_file "$filename.torrent";
                                
    $source_file "$filename.torrent";

                                
    // Herstellen der Basis-Verbindung
                                
    $conn_id ftp_connect("$ftp_server");

                                
    // Einloggen mit Benutzername und Kennwort
                                
    $login_result ftp_login($conn_id"$ftp_user_name""$ftp_user_pass");

                                
    // Verbindung überprüfen
                                
    if ((!$conn_id) || (!$login_result)) {
                                      echo 
    "FTP Verbindung nicht hergestellt!<br>";
                                    echo 
    "Verbindung mit $ftp_server als Benutzer $ftp_user_name nicht möglich<br>";
                                die;
                                    } else {
                                
    ftp_pasv $conn_idtrue );
                                    echo 
    "Passiv-Modus eingeschaltet...<br>";
                                       echo 
    "FTP Verbindung hergestellt...<br>";
                                    }
                                    
                                if (!
    file_exists($ausgabe["link"])){

                                
    // Datei löschen
                                
    unlink("$ausgabe['link']");

                                echo 
    "<font color='green'>$ausgabe['link'] entfernt</font><br>";

                                }else{

                                echo 
    "<font color='red'>$ausgabe['link'] nicht entfernt</font><br>";

                                }
                                    
                                
    // Schließen des FTP-Streams
                                
    ftp_quit($conn_id);

                                

    }

    ?>
    Nur jetzt habe Ich ein Problem.
    Die Downloads sind in der Tabelle aber nicht mit "wasser.rar" bezeichnet sondern da steht auch noch eine URL vor. Als Beispiel: http://www.hulubulu.de/wasser.rar

    Diese URL muss ich aber doich entfernen sonst findet er ja keinen passenden Eintrag oder?
     

  7. #7
    Avatar von Online-Skater
    Online-Skater Online-Skater ist offline Mitglied Brillant
    Registriert seit
    Sep 2004
    Ort
    Rostock
    Beiträge
    891
    Wieso probierst du es nicht einfach aus ? Sowas verstehe ich nicht !

    Die Funktion basename() wird dir helfen. Aber bitte probiere das auch aus anstatt zu fragen, und dann anhand eines Problems die frage zu stellen.
     

  8. #8
    Avatar von Online-Skater
    Online-Skater Online-Skater ist offline Mitglied Brillant
    Registriert seit
    Sep 2004
    Ort
    Rostock
    Beiträge
    891
    Hmm Sorry der Server is so lahm und ich habe vergessen das ich schon gedrückt habe .. --->delete
     

  9. #9
    Avatar von blount
    blount blount ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Beiträge
    310
    Du musst allerdings den umgekehrten Weg
    gehen. Du musst den Inhalt des ftp's auslesen
    und mit der Datenbank vergleichen. Wenn der
    Eintrag nicht in der Datenbank vorhanden ist
    wird die Datei gelöscht.

    Ich kann nicht überprüfen ob das Beispiel
    hundert prozentig funktioniert aber es sollte die
    Vorgehensweise klar machen.

    PHP-Code:
    $hdl opendir ("./verzeichnis/");
                            while (
    $res readdir ($hdl)){
                                    
    $datenbank[]=$res;
                            }
                            
    closedir($hdl);

    foreach (
    $datenbank as $var){
      
    // DATENBANKVERBINDUNG HERSTELLEN
      
    $sql="SELECT * FROM tabelle WHERE linkname= '".$var."'";
      
    $ergebnis=mysql_query($sql$verbindung);

      if (
    mysql_num_rows($ergebnis)<1){
       
    unlink($var); 
     }


    mfg,
    blount
    Geändert von blount (21.09.06 um 00:58 Uhr)
     
    :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

    :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

  10. #10
    PHP-Fan PHP-Fan ist offline Mitglied Gold
    Registriert seit
    Jun 2005
    Beiträge
    171
    Ich habe jetzt dieses Script:

    PHP-Code:
    <?php

    $FTPServer   
    "";
    $FTPUser     "";
    $FTPPasswort "";

    $Verzeichnis ".";

    $VerbindungsID ftp_connect($FTPServer);
    $LoginErgebnis ftp_login($VerbindungsID$FTPUser$FTPPasswort);

    if(
    $VerbindungsID && $LoginErgebnis)
    {
        
    $Dateiliste=ftp_nlist($VerbindungsID$Verzeichnis);
        
    sort($Dateiliste);
        echo
    "<table border=\"0\">",
            
    "<tr>",
            
    "<td><b>Name</b></td>",
            
    "<td><b>Größe</b></td>",
            
    "<td><b>Letzte Änderung</b></td>",
            
    "</tr>";
        for(
    $i=0$i<count($Dateiliste); $i++)
        {
            
    $Dateigroesse=ftp_size($VerbindungsID$Dateiliste[$i]);
            echo
    "<tr>";
            if(
    $Dateigroesse=="-1")
            {
                
    $Ordner++;
                echo
    "<td colspan=\"3\"><font color=\"red\">",
                    
    $Dateiliste[$i],
                    
    "</font></td>";
            }
            else
            {
                
    $Dateien++;
                
    $Verzeichnisgroesse+=$Dateigroesse;
                echo
    "<td>",
                    
    $Dateiliste[$i],
                    
    "</td>",
                    
    "<td align=\"right\">",
                    
    number_format($Dateigroesse0",""."),
                    
    " Bytes</td>",
                    
    "<td>",
                    
    date("d.m.Y H:i"ftp_mdtm($VerbindungsID$Dateiliste[$i])),
                    
    "</td>";
            }
            echo
    "</tr>";
        }
        echo
    "<tr>",
            
    "<td>",
            
    $Ordner,
            
    " Ordner, ",
            
    $Dateien,
            
    " Dateien</td>",
            
    "<td align=\"right\">",
            
    number_format($Verzeichnisgroesse0",""."),
            
    " Bytes</td>",
            
    "<td>&nbsp;</td>",
            
    "</tr>";
        echo
    "</table>";
    }
    else
    {
        echo
    "Es konnte keine Verbindung mit dem FTP-Server hergestellt werden.";
    }

    ?>
    Die Daten werden auch ausgegeben, wie kann ich das jetzt so machen dass er das mit der DB Vergleicht?
     

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 13.03.08, 09:56
  2. Dateien auf anderen Server spiegeln - LFTP
    Von deostift im Forum Linux & Unix
    Antworten: 1
    Letzter Beitrag: 13.06.07, 13:12
  3. Dateien vom Server löschen
    Von Grunge im Forum PHP
    Antworten: 3
    Letzter Beitrag: 14.03.06, 02:31
  4. Dateien von einem Server zum anderen...
    Von ThiGGeR im Forum Hosting & Webserver
    Antworten: 12
    Letzter Beitrag: 02.11.03, 04:48
  5. Löschen von Dateien eines anderen Users
    Von Berno im Forum Linux & Unix
    Antworten: 1
    Letzter Beitrag: 23.07.03, 14:35