HTTP wrapper

Pagina: 1
Acties:
  • 110 views sinds 30-01-2008
  • Reageer

  • Dennisderoo
  • Registratie: Februari 2004
  • Laatst online: 11-05 16:27
Hallo,

Ik probeer vanuit een andere host bestanden te uploaden naar mijn thuisserver. Ik heb de mappen gewoon schijfrechten gegeven (chmod777). Echter werkt dit niet en ik krijg deze foutmelding:

Warning: move_uploaded_file(http://mijnip/upload/img/8736_1104847962.jpg): failed to open stream: HTTP wrapper does not support writeable connections. in /home/virtual/site85/fst/var/www/html/new2/upload.php on line 59

Hoe zorg ik er voor dat dit wel gaat werken? Ligt het aan de script of aan mijn eigen server? Ik neem aan dat het aan mijn server ligt... Hoe kan ik mijn thuisserver daar goed voor instellen?

Ik heb Mandrake Linux 10.0 met PHP 4.3.10

  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 08:38
via ftp gaan rommelen? Dat protocol is er immers voor gemaakt :)

http://nl.php.net/ftp

Sometimes you need to plan for coincidence


  • kamerplant
  • Registratie: Juli 2001
  • Niet online
De error melding lijkt me vrij duidelijk. Via HTTP kun je gewoon niet uploaden, of je moet bepaalde data naar een script sturen, dat doe je alleen niet met de HTTP wrapper. Je zult handmatig een verbinding moeten maken met de server om Http-POST data naar een script te sturen, of te FTPen. Succes :+

🌞🍃


  • Dennisderoo
  • Registratie: Februari 2004
  • Laatst online: 11-05 16:27
m.a.w. ik moet gewoon ftp gegevens meesturen? dus username + wachtwoord?
Maar is dat wel veilig dan?

  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 08:38
je kan toch gewoon een ftp-user extra aanmaken op je server, eentje die je alleen daarvoor gebruikt?

op die pagina die ik je gaf, kan je zien hoe je er dan gebruik van kan maken.

En het al allicht veiliger zijn dan chmod777 op alles :D

Sometimes you need to plan for coincidence


Verwijderd

Groentenboer schreef op dinsdag 04 januari 2005 @ 15:52:
je kan toch gewoon een ftp-user extra aanmaken op je server, eentje die je alleen daarvoor gebruikt?

op die pagina die ik je gaf, kan je zien hoe je er dan gebruik van kan maken.

En het al allicht veiliger zijn dan chmod777 op alles :D
Daar gebruiken we tegenwoordig toch ssh voor? WinSCP als client (er vanuit gaande dat je windows gebruikt) en SFTP of SCP als protocol. In ieder geval veilig.

  • Dennisderoo
  • Registratie: Februari 2004
  • Laatst online: 11-05 16:27
Verwijderd schreef op dinsdag 04 januari 2005 @ 15:55:
[...]

Daar gebruiken we tegenwoordig toch ssh voor? WinSCP als client (er vanuit gaande dat je windows gebruikt) en SFTP of SCP als protocol. In ieder geval veilig.
Ik gebruik geen windows maar linux.
Maar waar vind ik hier meer info over?

  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 08:38
hmm, maar het is de vraag of TS het _zo_ veilig moet hebben. Een normale ftp-login zou voldoende moeten zijn hiervoor :)

Sometimes you need to plan for coincidence


  • Dennisderoo
  • Registratie: Februari 2004
  • Laatst online: 11-05 16:27
Ik gebruik onderstaande code om verbinding te maken.
Maar dan krijg ik deze foutmelding:

Warning: ftp_login() expects parameter 1 to be resource, boolean given in /home/virtual/site92/fst/var/www/html/test.php on line 10
FTP connection has failed!Attempted to connect to mijnip for user gebruikersnaam

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
$ftp_server = "mijn ip";
$ftp_user_name = "gebruikersnaam";
$ftp_user_pass = "wachtwoord";

// set up basic connection
$conn_id = ftp_connect($ftp_server); 

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 

// check connection
if ((!$conn_id) || (!$login_result)) { 
       echo "FTP connection has failed!";
       echo "Attempted to connect to $ftp_server for user $ftp_user_name"; 
       exit; 
   } else {
       echo "Connected to $ftp_server, for user $ftp_user_name";
   }
?>

Verwijderd

Je hebt toch wel "mijn ip" veranderd in een echt adres hè? Omdat je in je foutmelding ook "mijnip" hebt staan..

Edit: er staat dus dat je $conn_id een boolean is, en dat kan kloppen als de connectie mislukt:
Returns a FTP stream on success or FALSE on error.

[ Voor 51% gewijzigd door Verwijderd op 04-01-2005 16:12 ]


  • Dennisderoo
  • Registratie: Februari 2004
  • Laatst online: 11-05 16:27
Verwijderd schreef op dinsdag 04 januari 2005 @ 16:09:
Je hebt toch wel "mijn ip" veranderd in een echt adres hè? Omdat je in je foutmelding ook "mijnip" hebt staan..

Edit: er staat dus dat je $conn_id een boolean is, en dat kan kloppen als de connectie mislukt:

[...]
Ja tuurlijk heb ik dat veranderd ;-)

Het staat zo: ftp.123.456.789

  • Dennisderoo
  • Registratie: Februari 2004
  • Laatst online: 11-05 16:27
In eerste instantie was ik vergeten "ftp." voor mijn IP te zetten maar de foutmelding blijft en ik heb er een bijgekregen:

Warning: ftp_connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/virtual/site92/fst/var/www/html/test.php on line 7

Verwijderd

Dennisderoo schreef op dinsdag 04 januari 2005 @ 16:13:
[...]


Ja tuurlijk heb ik dat veranderd ;-)

Het staat zo: ftp.123.456.789
Ja dacht ik al, maar voor de zekerheid ;)

Maarrem:
host shouldn't have any trailing slashes and shouldn't be prefixed with ftp://.
En dus ook niet met ftp. denk ik ;) Dus probeer eens alleen het nummertje?

  • Dennisderoo
  • Registratie: Februari 2004
  • Laatst online: 11-05 16:27
Heb ik gedaan maar dan krijg ik de foutmelding:

Warning: ftp_login() expects parameter 1 to be resource, boolean given in /home/virtual/site92/fst/var/www/html/test.php on line 10
FTP connection has failed!Attempted to connect to mijnip for user gebruikersnaam

Ik heb weer wat zitten klooien en nu heb ik deze foutmelding weggekregen maar nu krijg ik deze:

Warning: ftp_login(): Login incorrect. in /home/virtual/site92/fst/var/www/html/test.php on line 10
FTP connection has failed!Attempted to connect to ftp.mijnIP for user gebruikersnaam

Je zou denken dat gebruikersnaam en wachtwoord niet goed zijn maar dat zijn ze wel...

Moet ik misschien de 'groep' nog instellen ofzo??

  • El_kingo
  • Registratie: Mei 2002
  • Laatst online: 17-03-2025
Als ik hier jouw script draai op de volgende manier:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<? 
$ftp_server = "123.456.789.012"; 
$ftp_user_name = "gebruikersnaam"; 
$ftp_user_pass = "wachtwoord"; 

// set up basic connection 
$conn_id = ftp_connect($ftp_server);  

// login with username and password 
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);  

// check connection 
if ((!$conn_id) || (!$login_result)) {  
       echo "FTP connection has failed!"; 
       echo "Attempted to connect to $ftp_server for user $ftp_user_name";  
       exit;  
   } else { 
       echo "Connected to $ftp_server, for user $ftp_user_name"; 
   } 
?>


Werkt ie uitstekend...
Dus: heb je ip-adres tussen aanhalingstekens staan?
weet je zeker dat je een goede loginnaam/password hebt?
er is geen firewall die iets blokkeert?

tip: splits je foutmelding even uit naar connectie en login resultaat, geeft alweer iets meer overzicht.

  • Dennisderoo
  • Registratie: Februari 2004
  • Laatst online: 11-05 16:27
sparcky schreef op dinsdag 04 januari 2005 @ 16:31:

Dus: heb je ip-adres tussen aanhalingstekens staan?
weet je zeker dat je een goede loginnaam/password hebt?
er is geen firewall die iets blokkeert?

tip: splits je foutmelding even uit naar connectie en login resultaat, geeft alweer iets meer overzicht.
Er zit wel firewall in mijn router. Maar dan zou ie helemaal niet van buitenaf te benaderen zijn toch?

  • El_kingo
  • Registratie: Mei 2002
  • Laatst online: 17-03-2025
van buitenaf? als in je probeert nu vanaf je eigen pc een ftpserver opdezelfde pc te bereiken?
in dat geval gebruik "localhost" als adres, als je naar een andere pc wilt connecten moet op de pc waar je naar toe connect de ftp-poort openstaan

Edit: ooh wacht, je zegt in je openingpost dat je naar je thuisserver wilt uploaden, in dat geval moet inderdaad je router wel verkeer doorlaten op je ftp-poort (poort 21) en moet poort-mapping etc. ook nog goed staan...

[ Voor 33% gewijzigd door El_kingo op 04-01-2005 16:44 . Reden: zie Edit: ]


  • Dennisderoo
  • Registratie: Februari 2004
  • Laatst online: 11-05 16:27
poort-mapping ??

  • Dennisderoo
  • Registratie: Februari 2004
  • Laatst online: 11-05 16:27
Nou ik heb het (tijdelijk) maar anders opgelost...

Het uploadformpje op de host en het upload script op de thuisserver...

Verwijderd

Dennisderoo schreef op dinsdag 04 januari 2005 @ 15:56:
Ik gebruik geen windows maar linux.
Maar waar vind ik hier meer info over?
man scp
man sftp
man ssh
man sshd_config

Verwijderd

Groentenboer schreef op dinsdag 04 januari 2005 @ 15:57:
hmm, maar het is de vraag of TS het _zo_ veilig moet hebben. Een normale ftp-login zou voldoende moeten zijn hiervoor :)
Sorry hoor, maar ik vind ftp en telnet echt niet kunnen op het huidige 'net.
Bovendien zit dit allemaal standaar op Linux en zijn er simpele Linux/Windows/Mac clients, dus het kost nauwelijks moeite. Alleen het woordje ftp even vergeten ;-)

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 22-04 07:04
Dennisderoo schreef op dinsdag 04 januari 2005 @ 18:45:
Nou ik heb het (tijdelijk) maar anders opgelost...

Het uploadformpje op de host en het upload script op de thuisserver...
Zie het probleem niet van deze oplossing eigenlijk. Lijkt me beter dan ftp/ssh constructies iig.

Verwijderd

Sjaaky schreef op dinsdag 04 januari 2005 @ 20:44:
Zie het probleem niet van deze oplossing eigenlijk. Lijkt me beter dan ftp/ssh constructies iig.
*proest*

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 22-04 07:04
Zoals ik het verhaal van de Dennisderoo lees wil hij anderen de mogelijkheid bieden om bestanden te uploaden naar zijn thuisserver. Dan is een uploadform op zijn host en een uploadscript op zijn thuisserver het eenvoudigst. Dat het niet veilig is boeit niet zo veel, dat was de http upload naar zijn host namelijk ook al niet. Je bespaart op deze manier wel dataverkeer.
Het enige nadeel dat ik kan verzinnen is dat je geen sessies op de host kan overgeven naar je thuisserver, dus daar zul je iets meer moeite voor moeten doen.

Verwijderd

Sjaaky schreef op dinsdag 04 januari 2005 @ 22:20:
Zoals ik het verhaal van de Dennisderoo lees wil hij anderen de mogelijkheid bieden om bestanden te uploaden naar zijn thuisserver. Dan is een uploadform op zijn host en een uploadscript op zijn thuisserver het eenvoudigst. Dat het niet veilig is boeit niet zo veel, dat was de http upload naar zijn host namelijk ook al niet. Je bespaart op deze manier wel dataverkeer.
Het enige nadeel dat ik kan verzinnen is dat je geen sessies op de host kan overgeven naar je thuisserver, dus daar zul je iets meer moeite voor moeten doen.
De veiligheid was niet waar ik om moest lachen. Een oplossing met een form op een server en een script op de andere vond ik alleen een beetje lachwekkend. Maar goed, als het alleen voor prive gebruik is heb ik misschien nog wel grappiger dingen gedaan ;-)

Anyway, ik heb zelf een SFTP oplossing met scponly en chroot waardoor ik mensen veilig een dropbox op mijn server kan geven of toegang kan geven tot bepaalde directories en de rest absoluut niet. Overdreven voor privegebruik misschien, maar ik kan het ook nog wel eens handig gebruiken om mensen zeer beperkte toegang tot bedrijfsservers te geven en dat zonder dat hun wachtwoord unencrypted over de lijn gaat. Soms is het handig om het gewoon een keer goed te doen.
Pagina: 1