theresa: php-ftp funktinoiert per cronjob nicht

hi leute,
ich habe ein relativ simples backup-skript,
dass einen mysql-dump erstellt, zippt und anschließend per ftp
auf einen anderen server überträgt.
ich rufe das skript per cronjob (cronjob.de) auf, funktioniert wunderbar.
nur ein kleines problem hab ich bei der ganzen sache, der ftp-teil meines skriptes wird nicht interpretiert.
ich hab testweise innerhalb der übertragungsinstanz einen db-eintrag gemacht um zu überprüfen ob überhaupt übertragen wird, was aber nicht der fall ist, der folgende block wird einfach ignoriert:

$ftp_id = ftp_connect(HOSTNAME);
$ftp_id_loginresult = ftp_login($ftp_id, 'USERNAME', 'PASSWORT');
if ((!$ftp_id) || (!$ftp_id_loginresult)) {//fehler}
else
{
 ftp_chdir($ftp_id, 'VERZEICHNIS FÜR BACKUP');
 ftp_put ($ftp_id, DATEI, DATEI, FTP_BINARY);
}
ftp_quit($ftp_id);

wenn ich das skript im browser aufrufe, funktioniert alles prima.
ist php/ftp/cronjob vielleicht eine schlechte kombination?
kann mir da jemand weiterhelfen?

DANKE,
eure theresa

  1. echo $begrüßung;

    if ((!$ftp_id) || (!$ftp_id_loginresult)) {//fehler}

    So wie du diese Zeile geschrieben hast ist das ein Syntax-Fehler, da die schließende Klammer Teil des Kommentars und damit wirkungslos ist. Ist das vielleicht nur ein Fehler beim Übertragen hier ins Forum?

    else
    {

    [...]

    }

    Einer von beiden Zweigen wird auf alle Fälle aufgerufen werden, wenn das Script nicht schon vorher stirbt.

    $ftp_id = ftp_connect(HOSTNAME);
    $ftp_id_loginresult = ftp_login($ftp_id, 'USERNAME', 'PASSWORT');

    Wenn der Connect nicht funktioniert hat, ist es sinnlos, ein Login zu starten, zumal in dem Fall $ftp_id auf false steht und dies kein gültiges Argument für ftp_login() ist.

    Ist FTP überhaupt für die CLI-Variante aktiviert? Was sagt phpinfo(), wenn du es auf gleiche Art aufrufst wie das Cronjob-Script?

    Weiterhin kannst du die Error-Logging-Möglichkeiten PHPs nutzen, um dir von auftretenden Fehlern berichten zu lassen. log_errors, error_log, error_reporting wären entsprechende Konfigurationsdirektiven.

    echo "$verabschiedung $name";