PHP - FTP



  • Salut,

    je voulais savoir si il était possible par le biais du php et ftp de copier un fichier d'un lien http://nimp.freeheberg.com/fichier.txt sur un ftp ?

    Car j'ai essayé avec ftp_nb_put() mais c'est pour mettre sur le ftp un fichier local or je voudrait mettre un fichier pas un lien :P

    Voila j'espère que vous comprenez ma demande et merci d'avance ...



  • Oui. Pour ça, tu te connecte au ftp source pour récupérer le fichier grâce à ftp_fput(). Ensuite, tu recréer un lien vers le ftp de destination et tu y envois le fichier avec ftp_fput().
    Fais juste attention à bien remplir tout les arguments des fonctions (notamment les pointeurs vers les fichiers).



  • heu je me suis planté lol

    Le fichier que je veu lettre sur le ftp n'est pas sur le meme ftp.
    Je n'ai meme pas accès au ftp du lien :P

    Donc il faut directement sauvegardé un fichier dans le chemin prédifini du ftp ^^

    Tu comprend ?



  • Ah ok, je viens de comprendre.
    Si tu n'a pas accès au ftp (parce que tu n'a pas les identifiants nécessaires, par exemple), alors tu ne peut pas utiliser les fonctions ftp, et tu est obligé de passer par les fonctions fopen et file_get_contents.
    Seul problème…pour des raisons de sécurité, l'accès à ces fonctions en utilisant une url (http://...) est interdite sur freeheberg (ceci afin de prévenir les attaques du style include($_GET['shdqbkbhj'])). PHP6 changera ce comportement, normalement, mais comme c'est expliqué dans un topic de blabla (ou général, je ne sais plus), va falloir du temps avant qu'il soit implémenté chez freeheberg (par ailleurs, il n'est pas encore sortis, alors bon …).
    Une autre méthode à laquelle je vient de penser peut éventuellement marcher. Il s'agit de la fonction fsockopen. Celà dit, je crois que j'avais déjà essayé et qu'une erreur était survenue. A toi de tester, maintenant :wink:



  • ok sinon j'ai trouver ceci :

    http://fr.php.net/fr/fsockopen

    mais j'ai vraiment rien comprit et même de son utilité :P

    Si toi ou quelqu'un d'autre à le temps de m'expliquer cela.

    Merci d'avance



  • Personne ? :(



  • normalement c'est 24h pour les ups.
    Sans rentrer dans les détails (un poil technique et compliqué), fsockopen permet de lancer une requête http. Renseigne donc toi dessus. En complément, tu peux télécharger LiveHTTPHeader (extension firefox) qui te montrera des exemples d'entête à écrire via fsockopen.



  • Bonjour,

    J'ai un problème pour faire une connexion ftp via un script php.

    Il me dit qu'il ne peut pas établir la connexion.

    Voici le code de connexion:

        $ftp_server = "ftp2.freeheberg.com";      // FTP Server Address (exlucde ftp://)
        $ftp_user_name = "mon_login_ftp";     // FTP Server Username
        $ftp_user_pass = "mon_mdp_ftp";      // Password
    
        // Connect to FTP Server
        $conn_id = ftp_connect($ftp_server) or die ("Impossible de se connecter au serveur $ftp_server") ;
    
    

    Merci d'avance pour votre aide



  • Salut,

    essais ceci :

    		// Création de la connexion FTP
    		$conn_id = ftp_connect("$ftp_server") ;
    
    		// Authentification avec nom de compte et mot de passe
    		$login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_pass");
    
    		// Vérification de la connexion
    			if ((!$conn_id) || (!$login_result)) 
    			{
    				exit("La connexion FTP à échoué!") ;
    			} 
    			else 
    			{
    				echo "Connecté à $ftp_server, avec $ftp_user_name<br>";
    			}
    

    Sinon ouvre un autre post la prochaine fois ;)

    Bye



  • je ne vois pas ce que ton code peut apporter si ce n'est le login en plus que j'ai dans le reste de mon code.

    Selon mon test, c'est la connexion qui est refusée et donc le login n'entre pas encore en compte puisqu'il n'y a pas de connexion au server FTP.

    Désolé d'avoir posté ici mais il me semblait logique de poster sur un sujet à l'identique.

    Bonne soirée



  • Pour info, c'est dû a PHP et il faut remplacer l'adresse ftp2.freeheberg.com par son adresse IP, à savoir 87.98.218.31

    cf. également ce post

    http://www.freeheberg.com/phpbb2/viewto … 9e944c4711

    Si vous avez besoin de l'IP d'un autre serveur que le ftp2, dans windows, aller dans démarrer, cliquer sur exécuter. Ensuite taper CMD et faite ENTER

    Une fenêtre s'ouvre et là vous tapez

    ping le_nom_du_serveur

    Ensuite si tout fonctionne bien vous aurez en dessous

    Reponse de suivi de l'adresse IP du serveur.

    J'espère que cela pourra vous aider :)


Se connecter pour répondre
 

Il semble que votre connexion ait été perdue, veuillez patienter pendant que nous vous re-connectons.