2010-05-17 5 views
3

J'apprécie toute aide qui peut être offerte sur le sujet. A la fin d'une inscription en ligne, je prends des données client (plusieurs champs), les place dans un fichier CSV et essaye de me soumettre à un autre client via le protocole SSL mais je ne sais pas comment cela se fait. Je stocke également les informations dans une base de données locale et j'espère que le processus est similaire.Comment envoyer un fichier via protocole FTP sécurisé SSL

Je l'ai déjà été envoyé des liens pour afficher les instructions SSH2 de php.net SSN2

mais pour être honnête c'est comme la lecture du chinois pour moi. Je ne comprends pas les instructions et je ne cherche pas à installer d'extensions, modifier le fichier PHP.ini ou quoi que ce soit du genre (d'autant plus que nous ne possédons pas le serveur avec lequel les informations sont envoyées).

Existe-t-il un moyen simple et sécurisé de transmettre ce fichier au protocole SSL qui nous est fourni?

Merci!

+0

Vous êtes donc intéressé par sftp ou FTP-ssl? – WhirlWind

+0

@WhirlWind - notre client a mis en place ce qui suit: Créé un compte FTP sécurisé et ouvert le port 990 sur le pare-feu pour les connexions SSL sur le serveur FTP. J'ai également créé une nouvelle demande de certificat pour le protocole FTP et j'ai choisi le certificat de sécurité SSL 1028 bits. – JM4

+0

Trouver probablement des instructions pour FTPS, au lieu de SSH, puisque c'est ce que veut dire le "client". – WhirlWind

Répondre

2

La seule façon dont je l'ai réussi à faire FTP sur SSL en utilisant php est d'utiliser la fonction exec() de php pour exécuter une commande curl. La bibliothèque curl de PHP ne fonctionnerait pas car à l'époque, l'option skip-pasv-ip n'existait pas et c'était quelque chose qui était absolument nécessaire. Quelque chose comme:

curl --user <username:password> --disable-epsv --ftp-pasv --ftp-skip-pasv-ip --ftp-ssl --sslv2 --cert <path/to/certificate> -T <path/to/uploadfile> <hostname> 

Vous devrez peut-être modifier les options de boucle pour répondre à vos besoins.

+0

Merci pour le conseil. Je ne suis pas familier avec Curl mais je vais donner un coup de feu et vous faire savoir comment il se passe! – JM4

+0

@ JM4 - Je voulais également vous faire remarquer que vous pourriez utiliser la bibliothèque curl de PHP. Je n'ai pas pu l'utiliser car je ne pouvais pas définir l'option ftp-skip-pasv-ip - elle n'était pas disponible pour la version de PHP que j'utilisais. Si vous n'avez pas besoin de cette option et que vous disposez d'un support curl, commencez par le faire. –

+0

Je ne suis pas sûr de savoir comment utiliser curl inline comme vous l'avez noté ci-dessus.J'ai également référencé (http://curl.haxx.se/docs/manual.html) et ils listent en ligne comme vous l'avez fait. Toutes les instructions CURL que j'ai vues sont des lignes multiples avec des options très spécifiques. J'essaie de me connecter à une adresse IP hôte, avec un nom d'utilisateur et un mot de passe donnés, puis de vider un fichier dans un répertoire spécifique. Des idées? – JM4

5

Peut-être que vous pouvez utiliser ftp_ssl_connect pour cette matière, qui est utilisé pour ouvrir une connexion SSL-FTP sécurisé, et de télécharger un fichier est juste un simple processus, il suffit de créer la connexion au serveur, et Mettez le fichier là-haut. Un exemple de base pourrait être:

//Create your connection 
$ftp_conn = ftp_ssl_connect($host, $you_can_provide_a_port); 

//Login 
$login_result = ftp_login($ftp_conn, $user, $pass); 

if($login_result) 
{ 
    //Set passive mode 
    ftp_pasv($ftp_conn, true); 
    // Transfer file 
    $transfer_result = ftp_put($ftp_conn, $dest_file_path, $source_file_path, FTP_BINARY); 

    //Verify if transfer was successfully made 
    if($transfer_result) 
    { 
     echo "Success"; 
    } 
    else 
    { 
     echo "An error occured"; 
    } 
} 

À titre de référence http://www.php.net/manual/en/function.ftp-ssl-connect.php

+0

merci pour le conseil. Je vais essayer et vous faire connaître les résultats! – JM4

+0

cela n'a pas fonctionné comme nécessaire. On me donne l'adresse IP du client $ comme adresse IP et elle expire simplement après 60 secondes. Je sais que le FTPS fonctionne parce que je suis capable de me connecter avec le client FTP local – JM4

+1

Si ce qui précède ne fonctionne pas. Et la connexion fonctionne via un programme FTP de bureau, vous avez probablement ce problème. http://www.elitehosts.com/blog/php-ftp-passive-ftp-server-behind-nat-nightmare/ – Tim

Questions connexes