Re: Bestand aanmaken op FTP-server
Nico Schuyt wrote:
> Robrecht Jacques wrote:
>>Nico Schuyt wrote:
>
>> $connectie_id = ftp_connect($ftp_server);
>
>>De 'ftp_connect' kan mislukken.
>
> Wordt dat niet ondervangen door:
> if ((!$connectie_id) || (!$login_result)) {
> echo "Mislukt!"; ?
Jawel, maar je gebruikt $connectie_id al in je 'ftp_login' (voor die
'if') zonder eerst te checken of 'ftp_connect' wel gelukt is. Detail ws,
maar één van de eerste errors die je aangaf was juist dat probleem
($connectie_id bevatte een boolean ipv een fd).
>>>FTP server reports 213 0
>
>>Dat is toch een andere error dan vroeger, of niet?
>
> Ik sluit het niet uit. De errors die ik krijg bij dit soort werk zijn
> *uiterst* gevarieerd :-)
> Ik moet bekennen dat ik daar paniekerig op reageer ('dan maar wat anders')
> ipv goed te kijken wat er gebeurt.
Kijken wat het probleem is (of wat de software denkt dat het probleem
is) is toch handig vind ik :-) Ik denk
>>- heb je wel schrijfrechten voor /test.txt als anonymous?
>
> Ja: WS-FTP zet er probleemloos bestanden op.
> Idem (na connectie) met
> $PATH="";
> $file_name="xxxx.txt";
> $fp = fopen($PATH."".$file_name, 'r');
> ftp_pasv ($conn_id, false);
> ftp_fput($conn_id, $file_name, $fp, FTP_ASCII);
Er is een verschil tussen:
- ftp_login & ftp_put: nadat je ingelogd bent, kom je automatisch in een
bepaalde directory (die wellicht schrijfbaar is). Je 'fput' het bestand
dus in die directory.
en
- fopen (ftp://.../file.txt): hierbij geef je een absolute path mee:
maw: /file.txt.
Het is dus mogelijk dat je na inloggen (ftp_login) eigenlijk
/pub/file.txt schrijft wat wel lukt, maar dan moet je het absolute path:
ftp://xxxxxx/pub/file.txt gebruiken, niet .../file.txt. Ik veronderstel
dat ftp_fput($id, "/xxx.txt", ...); ook zal mislukken (??).
Mvg,
Robrecht
Re: Bestand aanmaken op FTP-server
Nico Schuyt wrote:
>>.... '@' zal de error-output
>>onderdrukken wat in een productie-omgeving mooier staat in je html.
>
>
> Ah, Goed om te weten!
error_reporting(0);
aan het begin van je script doet precies hetzelfde, maar maakt het wat
makkelijker om te switchen tussen debug modus en productie modus.
Re: Bestand aanmaken op FTP-server
Robrecht Jacques wrote:
> Nico Schuyt wrote:
>>> De 'ftp_connect' kan mislukken.
>> Wordt dat niet ondervangen door:
>> if ((!$connectie_id) || (!$login_result)) {
>> echo "Mislukt!"; ?
> Jawel, maar je gebruikt $connectie_id al in je 'ftp_login' (voor die
> 'if') zonder eerst te checken of 'ftp_connect' wel gelukt is. Detail
> ws, maar één van de eerste errors die je aangaf was juist dat probleem
> ($connectie_id bevatte een boolean ipv een fd).
Je hebt gelijk
> Het is dus mogelijk dat je na inloggen (ftp_login) eigenlijk
> /pub/file.txt schrijft wat wel lukt, maar dan moet je het absolute
> path: ftp://xxxxxx/pub/file.txt gebruiken, niet .../file.txt. Ik
> veronderstel dat ftp_fput($id, "/xxx.txt", ...); ook zal mislukken
(Nog) niet geprobeerd. Ik werk de procedure voorlopig uit met 2 stappen:
Aanmaken van gegevens
Uploaden na ftp-connect
Nogmaals bedankt voor alle hulp.
--
Nico
www.nicoschuyt.nl
Re: Bestand aanmaken op FTP-server
Michiel de Roo wrote:
> Nico Schuyt wrote:
>>> .... '@' zal de error-output
>>> onderdrukken wat in een productie-omgeving mooier staat in je html.
> error_reporting(0);
> aan het begin van je script doet precies hetzelfde, maar maakt het wat
> makkelijker om te switchen tussen debug modus en productie modus.
Goeie tip!
--
Nico
www.nicoschuyt.nl
Re: Bestand aanmaken op FTP-server
Michiel de Roo wrote:
> Nico Schuyt wrote:
>>> .... '@' zal de error-output
>>> onderdrukken wat in een productie-omgeving mooier staat in je html.
[...]
> error_reporting(0);
>
> aan het begin van je script doet precies hetzelfde, maar maakt het wat
> makkelijker om te switchen tussen debug modus en productie modus.
Argh!! 'sed -es/@//g < *.php' :-)
Mvg,
Robrecht
Re: Bestand aanmaken op FTP-server
Robrecht Jacques wrote:
> Michiel de Roo wrote:
>
>> Nico Schuyt wrote:
>>
>>>> .... '@' zal de error-output
>>>> onderdrukken wat in een productie-omgeving mooier staat in je html.
>
> [...]
>
>> error_reporting(0);
>>
>> aan het begin van je script doet precies hetzelfde, maar maakt het wat
>> makkelijker om te switchen tussen debug modus en productie modus.
>
>
> Argh!! 'sed -es/@//g < *.php' :-)
>
Ja zeg, heb je zoiets wel eens gezien:
<? mail("yourlove@welovespam.nl, "test, "test"); ?>
of om in de geest van OP te blijven:
<? fopen("ftp://anonymous:me%40example.com@xxx.xx.xx.xx/test.txt","w"); ?>
Re: Bestand aanmaken op FTP-server
Robrecht Jacques wrote:
> Michiel de Roo wrote:
>
>> Nico Schuyt wrote:
>>
>>>> .... '@' zal de error-output
>>>> onderdrukken wat in een productie-omgeving mooier staat in je html.
>
> [...]
>
>> error_reporting(0);
>>
>> aan het begin van je script doet precies hetzelfde, maar maakt het wat
>> makkelijker om te switchen tussen debug modus en productie modus.
>
>
> Argh!! 'sed -es/@//g < *.php' :-)
En oh ja, over switchen gesproken.......
Hoe sed je die @'tjes weer terug ?
Re: Bestand aanmaken op FTP-server
Michiel de Roo wrote:
> Robrecht Jacques wrote:
>> Michiel de Roo wrote:
>>> error_reporting(0);
>>
>> Argh!! 'sed -es/@//g < *.php' :-)
>
> En oh ja, over switchen gesproken.......
> Hoe sed je die @'tjes weer terug ?
Tja 'sed -es//@/g < *.php' zeker ??
Zeg: grapken hé. Ik heb nu wel de gewoonte om 'overal' @ toe te voegen,
maar met die error_reporting is misschien handiger werken.
Wat bijleren in niwss mag ook wel eens voor de verandering :-)
Mvg,
Robrecht
Re: Bestand aanmaken op FTP-server
Robrecht Jacques <Robrecht.Jacques@advalvas.be> wrote:
> Zeg: grapken h?. Ik heb nu wel de gewoonte om 'overal' @ toe te voegen,
> maar met die error_reporting is misschien handiger werken.
> Wat bijleren in niwss mag ook wel eens voor de verandering :-)
Mag ik aanraden om een errorhandler functie te maken. Op de productie
server laat je die syslog gebruiken om fouten te melden en op de
onwikkelmachine dump je gewoon een stack trace. Voordeel is dat je niet
in je code hoeft te rommelen tussen productie en devel, nadeel is
natuurlijk dat je weer een extra "module" moet includen.
--
Daniel Tryba