FTP avec PHP

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : FTP avec PHP

par Ryle » 05 juin 2007, 11:34

Ne confondez pas upload de fichier de votre machine vers de serveur (protocole http) et connexion à un serveur FTP avec php :)

Lorsque php ouvre une connexion FTP c'est depuis le serveur sur lequel il est installé vers le serveur indiqué. En l'occurence ici, depuis ton hébergeur vers.... ton hébergeur. Impossible donc pour lui de trouver un fichier qui se trouverait en local sur ta machine (et c'est tant mieux !!)

Ce serait une énorme faille de sécurité si un script php pouvait uploadé ou simplement lister par ftp les fichiers de ton disque... voilà un bon moyen de savoir ce qui est installé, de connaitre tes mots de passes, tes cookies, etc. :?

Si tu veux procéder avec une connexion ftp, il faut que ton pc dispose d'un serveur ftp auquel php pourra se connecter depuis ton hébergeur et faire du "get" pour downloader les fichiers de ta machine vers l'hébergeur ou est installé php, et non du "put". Sinon, la solution la plus simple reste l'upload fichier par fichier dans un formulaire avec l'enctype qui va bien, l'input de type file et la fonction move_uploaded_file() de php :)

par Xenon_54 » 05 juin 2007, 02:43

$source_file est le meme sur ton serveur?! (Le path Windows != *nux)

par Maitrepylos » 04 juin 2007, 09:41

Salut,

Ton hébergeur, te permets de faire du ftp en php?

Voir son phpinfo()

FTP avec PHP

par evets » 03 juin 2007, 19:44

Bonjour,

J'écris ce post car j'ai passé toute la journée pratiquement a essayé de faire un upload par FTP en suivant les tuto et forum à travers google et phpfrance mais je n'y arrive toujours pas et là je baisse un peu les bras :roll:

Je laisse donc mon code pour savoir si vous voyez une erreur évidente que je ne vois pas. Ce code marche PARFAITEMENT quand le code est sur mon PC avec EasyPHP mais dès que je veux le tester quand il est en ligne sur le serveur FTP de mon site, il ne marche plus :-(. La connexion au serveur passe bien mais c'est le transfert de fichier qui est toujours en "echoué"!

Code : Tout sélectionner

<?php $destination_file = "/photos/ville1.gif"; $source_file = "C:\Documents and Settings\MOI\Mes documents\Mes images\ville1.gif"; $ftp_server = "ftp.monsite.fr"; $ftp_user_name = "monuser"; // Le HOMEDIRECTORY est /www/villes $ftp_user_pass = "pass"; // Mise en place d'une connexion $conn_id = ftp_connect($ftp_server); // Identification avec un nom d'utilisateur et un mot de passe $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); // Vérification de la connexion if ((!$conn_id) || (!$login_result)) { echo "La connexion FTP a échoué !"; echo "Tentative de connexion au serveur $ftp_server pour l'utilisateur $ftp_user_name"; exit; } else { echo "Connexion au serveur $ftp_server, pour l'utilisateur $ftp_user_name réussie"; } // Chargement d'un fichier $upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY); // Vérification du statut du chargement if (!$upload) { echo "Le chargement FTP a échoué!"; } else { echo "Chargement de $source_file vers $ftp_server en tant que $destination_file"; } // Fermeture du flux FTP ftp_close($conn_id); ?>
Merci de me dire où se situe l'erreur ou l'astuce.

MERCI POUR VOTRE AIDE :wink: