JE suis dans un réseau d'entreprise, je n'ai pas le choix.
Tous les protocoles d'acces vers l'extérieur sont filtrés.
l'administrateur réseau m'a accordé les droits de faire du ftp à partir du serveur qui fait tourner apache/php vers le site ftp qui m'interesse, mais en passant par le proxy.
est tu sur au moins que ton serveur proxy dispose d'un serveur FTP?
si ce n'est pas le cas, tu narriveras jamais à te connecter à lui via ftp_connect()...
quand tu dis "à la main, j'arrive à me connecter", s'agit-il du proxy ou du serveur distant?
si c'est au serveur distant, essaie la connexion avec ftp_connect() ...
Et sinon j'y pense, dans l'utilisation de ftp_connect:
essaie de remplacer DOMAIN\userproxy par simplement DOMAIN (si ca ne marche pas, par simplement userproxy)
regarde les identifiants de connexions passé dans ton client FTP, ce sont ceux là qu'il faut utiliser normalement mais bon...
merci de ta réponse
à la main :
j'ouvre IE. Par défaut, ma config réseau d'entreprise me propose la connexion au proxy. je rentre user : DOMAIN\userproxy
pass : passproxy
puis dans l'url, je met
ftp://userftp:[email protected]
et je suis connecté
***************
voilà un des exemples trouvés sur la toile que j'ai testé. Il utilise la librairie curl.
$ftp = array();
$ftp["site"] = "ftp.serveur.fr";
$ftp["utilisateur"] = "userftp";
$ftp["motPasse"] = "passftp";
$le_fichier_xml = "fichier.xml";
$source = $le_fichier_xml;
$fp = fopen($source, 'r');
$urlFTP = "ftp://".$ftp["utilisateur"].":".$ftp["motPasse"]."@".$ftp["site"];
$ch = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt ($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); // j'ai essayé sans cette option
curl_setopt ($ch, CURLOPT_PROXY,"www.proxy.fr");
curl_setopt ($ch, CURLOPT_PROXYUSERPWD,"DOMAIN\\userproxy:passproxy"); // j'ai essayé avec un antislash simple, mais il doit falloir l'échapper, donc j'en ai mis deux.
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // j'ai essayé sans ces deux lignes
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_URL, $urlFTP);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($source));
$output = curl_exec($ch);
$info = curl_getinfo($ch);
if ($output === false || $info['http_code'] != 200)
{
$output = "No cURL data returned for $urlFTP [". $info['http_code']. "]";
if (curl_error($ch))
$output .= "\n". curl_error($ch);
else
echo "echec curl_error<br/>\n";
}
else
{
// 'OK' status; format $output data if necessary here
echo "fin OK: ";
}
// then return or display the single string $output
fclose($fp);
mais rien à faire il me répond : couldn't connect to host
Je crois vraiment que le problème vient du user proxy qui contient un nom de domaine. Ca doit être l'antislash qui lui plait pas.
[quote="Anonymous"][quote="albert80"]JE suis dans un réseau d'entreprise, je n'ai pas le choix.
Tous les protocoles d'acces vers l'extérieur sont filtrés.
l'administrateur réseau m'a accordé les droits de faire du ftp à partir du serveur qui fait tourner apache/php vers le site ftp qui m'interesse, mais en passant par le proxy.[/quote]
est tu sur au moins que ton serveur proxy dispose d'un serveur FTP?
si ce n'est pas le cas, tu narriveras jamais à te connecter à lui via ftp_connect()...
quand tu dis "à la main, j'arrive à me connecter", s'agit-il du proxy ou du serveur distant?
si c'est au serveur distant, essaie la connexion avec ftp_connect() ...
Et sinon j'y pense, dans l'utilisation de ftp_connect:
essaie de remplacer DOMAIN\userproxy par simplement DOMAIN (si ca ne marche pas, par simplement userproxy)
regarde les identifiants de connexions passé dans ton client FTP, ce sont ceux là qu'il faut utiliser normalement mais bon...[/quote]
merci de ta réponse
à la main :
j'ouvre IE. Par défaut, ma config réseau d'entreprise me propose la connexion au proxy. je rentre user : DOMAIN\userproxy
pass : passproxy
puis dans l'url, je met ftp://userftp:
[email protected]et je suis connecté
***************
voilà un des exemples trouvés sur la toile que j'ai testé. Il utilise la librairie curl.
[php] $ftp = array();
$ftp["site"] = "ftp.serveur.fr";
$ftp["utilisateur"] = "userftp";
$ftp["motPasse"] = "passftp";
$le_fichier_xml = "fichier.xml";
$source = $le_fichier_xml;
$fp = fopen($source, 'r');
$urlFTP = "ftp://".$ftp["utilisateur"].":".$ftp["motPasse"]."@".$ftp["site"];
$ch = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt ($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); // j'ai essayé sans cette option
curl_setopt ($ch, CURLOPT_PROXY,"www.proxy.fr");
curl_setopt ($ch, CURLOPT_PROXYUSERPWD,"DOMAIN\\userproxy:passproxy"); // j'ai essayé avec un antislash simple, mais il doit falloir l'échapper, donc j'en ai mis deux.
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // j'ai essayé sans ces deux lignes
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_URL, $urlFTP);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($source));
$output = curl_exec($ch);
$info = curl_getinfo($ch);
if ($output === false || $info['http_code'] != 200)
{
$output = "No cURL data returned for $urlFTP [". $info['http_code']. "]";
if (curl_error($ch))
$output .= "\n". curl_error($ch);
else
echo "echec curl_error<br/>\n";
}
else
{
// 'OK' status; format $output data if necessary here
echo "fin OK: ";
}
// then return or display the single string $output
fclose($fp);[/php]
mais rien à faire il me répond : couldn't connect to host
Je crois vraiment que le problème vient du user proxy qui contient un nom de domaine. Ca doit être l'antislash qui lui plait pas.