Ik run thuis zelf een server Apache 1.3.27 / PHP 4.3.1. / MySQL 4.0.1.3
De computer waar dit op loopt is de router is mijn netwerk en verder staat er op:
Winroute Lite 4.2.5 router, ZoneAlarm Pro 2.6.362 Firewall, BulletProof FTP Server 2.15,
NO-IP DUC om mij dynamisch ip te fixen.
De server werkt perfect en is te bereiken met de URL http://danetserver.sytes.net:45700.
Nu wou ik een PHP-script om gebruikers toe te laten file up te loaden naar de FTP server.
Dit is het script dat ik gebruik:
//set variables
$ftp_server = 'danetserver.sytes.net';
$ftp_user_name = 'inet';
$ftp_user_pass = '*********';
// set up basic connection
$conn_id = ftp_connect($ftp_server,45701);
// 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!<BR>";
echo "Attempted to connect to $ftp_server for user $ftp_user_name <BR>";
die;
} else {
echo "Connected to $ftp_server, for user $ftp_user_name <BR>";
}
//ftp_pasv ($conn_id, true) ;
$shortfilename = strrchr($HTTP_GET_VARS['file'],"\\");
// upload the file
$upload = ftp_put($conn_id, $shortfilename, $HTTP_GET_VARS['file'], FTP_BINARY);
// check upload status
if (!$upload) {
echo "Ftp upload has failed!<BR>";
} else {
echo "Uploaded $HTTP_GET_VARS['file'] to $ftp_server as $shortfilename <BR>";
}
// close the FTP stream
ftp_close($conn_id);
Nu dit script doet het perfect als ik het run vanop de server/router zelf.
Maar vanaf het moment dat ik iets probeer up te loaden van een ander computer
binnen het locaal netwerk of een andere computer. (bij vrienden ofzo) gebeurt hetvolgende.
Hij connecteert en kan zelfs inloggen maar zodra er ingelogd is wordt de connectie verbroken.
Dingen die ik al geprobeerd heb:
- Overgaan naar passive mode => werkt niet
- Een andere poort dan 45701 gebruiken voor de ftp-server => werkt niet
- Al mijn firewall-intstellingen op lage beveilging zetten en zelfs uit. (de firewall mogelijkheden van winroute zet ik sowieso af)
Nog een interessante opmerking/bevinding: Als ik hetzelfde script gebruik om iets up te loaden naar mijn telenet-webspace lukt
dit ook alleen vanop mijn server en niet vanop een andere computer zowel lokaal als
vanop het internet.
De computer waar dit op loopt is de router is mijn netwerk en verder staat er op:
Winroute Lite 4.2.5 router, ZoneAlarm Pro 2.6.362 Firewall, BulletProof FTP Server 2.15,
NO-IP DUC om mij dynamisch ip te fixen.
De server werkt perfect en is te bereiken met de URL http://danetserver.sytes.net:45700.
Nu wou ik een PHP-script om gebruikers toe te laten file up te loaden naar de FTP server.
Dit is het script dat ik gebruik:
//set variables
$ftp_server = 'danetserver.sytes.net';
$ftp_user_name = 'inet';
$ftp_user_pass = '*********';
// set up basic connection
$conn_id = ftp_connect($ftp_server,45701);
// 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!<BR>";
echo "Attempted to connect to $ftp_server for user $ftp_user_name <BR>";
die;
} else {
echo "Connected to $ftp_server, for user $ftp_user_name <BR>";
}
//ftp_pasv ($conn_id, true) ;
$shortfilename = strrchr($HTTP_GET_VARS['file'],"\\");
// upload the file
$upload = ftp_put($conn_id, $shortfilename, $HTTP_GET_VARS['file'], FTP_BINARY);
// check upload status
if (!$upload) {
echo "Ftp upload has failed!<BR>";
} else {
echo "Uploaded $HTTP_GET_VARS['file'] to $ftp_server as $shortfilename <BR>";
}
// close the FTP stream
ftp_close($conn_id);
Nu dit script doet het perfect als ik het run vanop de server/router zelf.
Maar vanaf het moment dat ik iets probeer up te loaden van een ander computer
binnen het locaal netwerk of een andere computer. (bij vrienden ofzo) gebeurt hetvolgende.
Hij connecteert en kan zelfs inloggen maar zodra er ingelogd is wordt de connectie verbroken.
Dingen die ik al geprobeerd heb:
- Overgaan naar passive mode => werkt niet
- Een andere poort dan 45701 gebruiken voor de ftp-server => werkt niet
- Al mijn firewall-intstellingen op lage beveilging zetten en zelfs uit. (de firewall mogelijkheden van winroute zet ik sowieso af)
Nog een interessante opmerking/bevinding: Als ik hetzelfde script gebruik om iets up te loaden naar mijn telenet-webspace lukt
dit ook alleen vanop mijn server en niet vanop een andere computer zowel lokaal als
vanop het internet.