Autor Zpráva
tomas3333
Profil
mam na ftp nieco taketo:
root/
-core
-file
...
-websites

a do slozky websites potrebujem vytvorit nieco taketo:
zlozka1/zlozka2/
potial to je ok, tie zlozky vytvorim funkciou ftp_mkdir(), ale ked tam chcem potom vytvorit subor (fopen()), tak to zahlasi, ze to miesto neexistuje. staci vsak chvilu pockat a uz to tam vytvori bez problemov. ako to riesit?
tomas3333
Profil
konkretne som zistil, ze ked tam dam 30 sekundovy sleep(), tak to funguje spravne
SwimX
Profil
tomas3333:
není to třeba tím, že ftp_mkdir() se musí na ftp připojit, tudíž to cvíli trvá? Nevím zda neplácám hlouposti, tuto fci neznám. Nemůžeš použít přímo mkdir?
fuckin
Profil
delej to bez ftp protokolu. Nebo to pak refreshni.
tomas3333
Profil
s mkdirom ale potom budu problemy, ked sa bude vytvarat ta vnorena zlozka, nie?
fuckin
Profil
kdyz to budes delat postupne tak ne.
U toho ftp to zkus refreshnout a pokracovat v tom skriptu, zajimalo by me jestli to pofrci.
Jan Tvrdík
Profil
fuckin:
kdyz to budes delat postupne tak ne.
Asi naráží na problém se safe modem.
tomas3333
Profil
Asi naráží na problém se safe modem.
presne ten

U toho ftp to zkus refreshnout a pokracovat v tom skriptu, zajimalo by me jestli to pofrci.
refreshnut jak? len odhlasit a prihlasit ftp? alebo refreshnut ten skript? ked refreshnem skript, tak to file_exists na vytvorene zlozky hlasi, ze neexistuju ale ftp_mkdir hadze chybu, po polminute to je ok
fuckin
Profil
Jan Tvrdík
Aha, pravda. To me nedoslo.

tomas3333
To je ponekud divne chovani. Testujes na freehostu nebo co?
Kdyz spustis sleep tak to nic v tu dobu nevykonava, takze nechapu jaktoze ti to nejede bez sleep()u.
Muzes ukazat nejakou ukazku, neco se me tam nezda, i s pripojenim.
tomas3333
Profil
testujem na freehoste momentalne, vyvijam na platenom ale myslim, ze tam sa to chovalo rovnako...
ked spustim script, dostanem chybu, ze to neviem najst tie priecinky, ale ked pozriem na ftp, tak tam vytvorene su, akoby mu to 30 sekund trvalo, ze tie priecinky "zaregistruje".

cast kodu: testy ci su zadane spravne hodnoty a ci sa da pripojit na ftp sa robili predtym:
       // 1. vytvorenie zloziek
        if (!empty($ftp_host)) {
            $ftp = ftp_connect($ftp_host, $ftp_port);
                 ftp_login($ftp, $ftp_user, $pass['ftp'][1]);
                 ftp_pasv($ftp, $ftp_passive);

            if (!file_exists("../websites/$website/$section")) {
                  if (!file_exists("../websites")) {
                      ftp_mkdir($ftp, "websites");
                  }
                  ftp_chmod($ftp, 0777, "websites");

                  if (!file_exists("../websites/$website")) {
                      ftp_mkdir($ftp, "websites/$website");
                  }
                  ftp_chmod($ftp, 0777, "websites/$website");
                  
                  ftp_mkdir($ftp, "websites/$website/$section");
                  ftp_chmod($ftp, 0777, "websites/$website/$section");
            }
        }

       // 2. zapis configu 

// OBSAH CONFIGU //
$config_value = '<?php
// db
$db_host = "'.$db_host.'";
$db_user = "'.$db_user.'";
$db_pass = "'.$pass['db'][1].'";
$db_name = "'.$db_name.'";

$prefix = "'.$db_prefix.'";

// ftp
$ftp_host = "'.$ftp_host.'";
$ftp_port = "'.$ftp_port.'"; // 21 = default
$ftp_user = "'.$ftp_user.'";
$ftp_pass = "'.$pass['ftp'][1].'";
$ftp_passive = '.$ftp_passive.';

// core
$core = "'.$core.'";
?>';
// OBSAH CONFIGU //
//sleep(30);

          $conf = fopen("../websites/$website/$section/config.php", "w");
                   fwrite($conf, $config_value);
                  fclose($conf);

        if (!empty($ftp_host)) {
              ftp_chmod($ftp, 0755, "websites/$website/$section");
              ftp_chmod($ftp, 0755, "websites/$website");
              ftp_chmod($ftp, 0755, "websites");

            ftp_close($ftp);
        }
fuckin
Profil
kod je OK.
Bohuzel se jedna o php bug. V nejnovejsi verzi by mel by byt uz odstranen, ale ruku do ohne bych za to nedal.

Napr. zde
http://bugs.php.net/bug.php?id=35326&edit=1
tomas3333
Profil
kurnik... no nic, budem to musiet vymysliet nejak inak, dik

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: