[PHP] Verbinding maken met andere FTP-server *

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Ad Hox
  • Registratie: Maart 2003
  • Laatst online: 19:58
Ik heb een heel klein lullig probleem, doch ben ik er al bijna 2 dagen mee bezig!
Vanaf mijn domein www.tommey.nl wordt een script gerund die op mijn server (D:/docs/) een bestand moet openen, een paar regels schrijven en weer opslaan. Ik heb het als volgt (ik heb aangegeven waar alles voor is, hoe ik dat bedoel), maar het werkt nog steeds niet!

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//verbinding maken met externe FTP-server (dat is de ftp server van mijn local host, D:/docs)
$ftp_server = 'tommeynl.serveftp.net';
$ftp_user_name = '********';
$ftp_user_pass = '*********';

// zet connectie aan
$conn_id = ftp_connect($ftp_server);

// inloggen
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// maak eerst een directory
if (ftp_mkdir($conn_id, $gebruikersnaam)) {

//open het bestand Users.ini (hier blijkt het niet te werken: hij zoekt op het domein tommey.nl naar dit bestand! hij moet dus in D:/docs gaan zoeken!
$userfile = 'BPFTP Server/Users.ini';
$fp=fopen($userfile,"a"); 
fputs($fp," 
[paar regels schrijven]
"); 
fclose($fp);


Hoe fix ik dit?

Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 12:54
Wat gaat er fout? Wat heb je zelf inmiddels al geprobeerd?

Zo denk ik over jouw 'probleem':
Ja maar dat is toch logisch. Je maakt gebruik van fopen() en fputs(), die gebruik je normaal gesproken voor je locale bestandssysteem (op de server waar het PHPscript uitgevoerd wordt.)

Volgens mij zul je met ftp functies moeten werken om bestanden te bewerken. Zoals ftp_fput en ftp_get.

Als dit het niet is dan snap ik heel jouw vraag niet.

Acties:
  • 0 Henk 'm!

  • Ad Hox
  • Registratie: Maart 2003
  • Laatst online: 19:58
Het enige probleem is dat ie het bestand, Users.ini, gaat zoeken idd locaal (op het domein waar het script staat). En dat moet juist niet maar met ftp_get etc heb ik al geprobeerd maar dat lukt me ook niet want dan zegt ie dat ie de dir niet kan vinden

code:
1
2
3
4
5
6
7
8
9
10
11
12
if (ftp_mkdir($conn_id, $gebruikersnaam)) {
$remote_file = 'BPFTP Server/Users.ini';
$handle = fopen('Users.ini', 'w');
$userfile = 'Users.ini';
$fp=fopen($userfile,"a"); 
fputs($fp," 
[invoer tekst]
"); 
$file = 'Users.ini';
$fp = fopen($file, 'r');
ftp_fput($conn_id, $file, $fp, FTP_ASCII);
fclose($fp);


M.b.v. php.net maar het werkt nog steeds niet, sorry voor de misschien knullige code.

EDIT: hij zet zet hem wel op het domein (dus hij haalt hem wel op)...dan schrijft ie er ook in! (hij delete wel elke keer het bericht, dus hij overwrite, haalt de oude tekst weg, kan dat niet gewoon eronder komen te staan??)
hij zet hem alleen niet terug! (naar de ftp waar ik mee connect).

[ Voor 70% gewijzigd door Ad Hox op 23-03-2005 21:23 ]


Acties:
  • 0 Henk 'm!

  • Ad Hox
  • Registratie: Maart 2003
  • Laatst online: 19:58
Kickje

Heb nog steeds geen oplossing gevonden :(

Acties:
  • 0 Henk 'm!

  • MrJay
  • Registratie: Juni 2004
  • Laatst online: 24-10-2024
Ik weet niet zeker of je met een ftp-verbinding direct kan schrijven. Ik denk dat je een andere strategie zal moeten toepassen:

1. download het bestand (ftp_get) naar een temp dir
2. modify het bestand _lokaal_
3. upload het temp bestand met juiste bestandsnaam