Verbinden mit FTP

Thilnd

Mitglied
Hi, hab nen Problem und zwar kommt immer folgende Fehlermeldung:


Fatal error: Call to undefined function: ftp_connect() in /../.../../../include/mod_rechnung/letzte_rechnung.php on line 6

Bissl abgekürzt vorne ;)

und der Quellcode ist folgender:

PHP:
<?php
include ('config.inc.php');

     $verzeichnisinhalt = array();

          $VerbindungsID = ftp_connect($FTPServer);

          $LoginErgebnis = ftp_login($VerbindungsID, $FTPUser, $FTPPasswort);
          if($VerbindungsID && $LoginErgebnis)
          {
  		  if (ftp_chdir($VerbindungsID, $ftp_backup_dir))
              {
     $file_list = ftp_nlist($VerbindungsID, "");


     foreach ($file_list as $file)
    {
        if($file != "." && $file != "..")

      $verzeichnisinhalt[] = $file;

      sort($verzeichnisinhalt);

       }

    $ende = end($verzeichnisinhalt);
    $last_one = substr($ende, 0, 6);
    $next_one = $last_one +1;
              }
		    else
              {
              echo "Fehler\n";
              }
              ftp_quit($VerbindungsID);
          }
          else
          {
              echo"Es konnte keine Verbindung mit dem FTP-Server hergestellt werden.";
         }
?>

Soo nun die Frage, wie kann ich denn den Fehler umgehen?

Habe PHP und Mysql Aktiviert auf den Server ;) Also dadran kanns nit liegen.
 
hehe ja danke, aber bin totaler newbie, habe das erste mal was mit PHP zutun und es war eigentlich ein fertiges Script. von daher kann ich nicht viel damit anfangen mit der Seite ;)

Wie und wo muss ich denn die Funktion definieren? Wo genau kommt die definition hin?
 
Die FTP-Funktionen werden nicht definiert, diese werden entweder in PHP einkompiliert oder eben nicht. Unter Windows laeuft das glaub ich ueber eine DLL die geladen werden kann.
Aber wenn Du bei einem Hoster bist der Dir die FTP-Funktionen nicht bietet kannst Du daran nichts drehen. Dann musst Du entweder selbst mit fsockopen() verbinden und das FTP-Protokoll zur Kommunikation nutzen, oder eben sowas wie meine Klasse nutzen.
 
Ja, ich denke mal das der anbieter von mir das dann nicht anbietet sonst käm der fehler nicht?


Naja und deine Datei, wo lad ich die hin? einfach so in nen Config ordner vom Script und dann anstatt

<?php
include ('config.inc.php');

$verzeichnisinhalt = array();

$VerbindungsID = ftp_connect($FTPServer);

einfach so umwandeln
<?php
include ('config.inc.php');
include ('ftpconnection.class.php');

$verzeichnisinhalt = array();

$VerbindungsID = ftpconnection($FTPServer);


Wie gesagt habe leider voll kein plan von der sache aber brauch das Script unbedingt ganz dringend löl Zwei Probleme auf einmal...
 
Genau, Du musst die Klasse includen und kannst sie dann nutzen.
Ein Beispiel hab ich ja unpraktischerweise nicht im Tutorial hinterlassen (muss ich mal nachholen). Aber ich kann Dir mal eben eines raussuchen, ich hab hier sicher was dazu rumfliegen.
PHP:
<?php
require_once('ftpconnection.class.php');
$ftphost='';
$ftpuser='';
$ftppassword='';
$ftp=new ftpconnection($ftphost,$ftpuser,$ftppassword);
$ftp->chdir('/ftphome');
echo nl2br($ftp->ls());
$ftp->put('localfile','remotefile');
$text=$ftp->read('remotefile');
$ftp->mkdir('test');
$ftp->write('test/remotefile2',$text);
$ftp->get('test/remotefile2','localfile2');
$ftp->delete('test/remotefile2');
$ftp->rmdir('test');
unset($ftp);
?>
Damit wird zuerst in das Verzeichnis /ftphome gewechselt, dort die Verzeichnisliste ausgegeben, anschliessend die Datei localfile hochgeladen und unter dem Namen remotefile abgespeichert. remotefile wird dann in eine Variable gelesen, das Verzeichnis test angelegt und die zuvor eingelesene Variable in die Datei test/remotefile2 geschrieben. test/remotefile2 wird dann in nach localfile2 runtergeladen, anschliessend wieder geloescht und auch das Verzeichnis test wird wieder geloescht.
Sobald das Objekt geloescht wird (entweder wie hier mit unset() oder automatisch am Ende des Scripts) wird auch die Verbindung zum FTP-Server getrennt.
So, in dem Beispiel hast Du jetzt zwar nicht alle Funktionen der Klasse, aber soweit die wichtigsten.
 
also ich hab ne config.inc.php datei schon da sieht genauso aus ^^

<?php
$FTPServer = "www.server.de";
$FTPUser = "username";
$FTPPasswort = "passwd";
$ftp_backup_dir = "test/";
$dbuser = "db_user";
$dbpassword = "dbpasswd";
$dbname = "datenbank_name";
$global_path = "http://www.irgendein-server.de/pub/MaxPower/";
$logo = "http://www.irgendein-server.de/pub/MaxPower/css/logo.png";
$homepage = "http://www.deine-seite.de";
$Heimat = "Deine Stadt";
$filename ="_rechnung.pdf";
$a_filename="_angebot.pdf";
$e_adresse = "Dein Name, deine Strasse, PLZ Stadt";//Adresse, f&uuml;r den Kopf
$e_tel = "00890-5646";//Telefonnummer
$geschaeftsf = "Herr Mustermann";//Wer ist der Chef?
$st_nummer = "11/111/1111/1";//Steuernummer
$amt = "Sitz des Finanzamtes";//Welches Finanzamt?
$bank = "Kontoinhaber, Sparkasse DeineStadt";//
$blz = "585 999 99";
$konto = "123456";//Kontonummer
?>


Soo siehts aus ;)

is doch dasselbe oder? und dadrauf greift auch die Datei drauf zu welchei mmer den fehler ausgibt
 
Da hast Du jetzt ein paar Variablen definiert, die Variablen fuer FTP kannst Du der Klasse uebergeben um die Verbindung aufzubauen.
Und dann machst Du halt, aehnlich wie in meinem Beispiel, was auch immer Du auf dem FTP-Server machen willst.
 
lölz das ist alles zu hoch für mich glaub ich... ich verstehe vorne und hinten nix mehr...

Also kurze erläuterung das ist nen Rechnungsscript

sind hunderte von dateien die fast alle aufeinander zugreifen... vondaher hab ihc jetzt null ahnung...
 

Neue Beiträge

Zurück