La communauté ALL HTML c'est 58031 membres à ce jour dont 1 inscrits aujourd'hui et 30 depuis une semaine.

  • imprimer
  • aide

Forum de discussions « PHP - SQL »

Retrouvez les publications relatives à ces discussions dans nos rubriques PHP, SQL.

Envoi dossier sur FTP ?

liste des forums liste des discussions Participer à la discussion

Photo de Zeuz Message publié le lundi 14 avril 2008 à 13 h 05 par Zeuz. L'essentiel est de chercher, car finalement où est la fin ?
Salut à tous,

voilà, je suis en train d'assyer de monter un script permettant d'uploader le contenu d'un dossier sur le serveur.


Tout me paraît bien, mais rien ne se passe : ni message d'erreur, ni fichiers uploadés...
Quelqu'un peut-il me donner un coup de main ?

Voici mon code :

<?php

function ftp_putdir($host , $user , $passwd , $localdir , $remotedir , $port=21)
{
// Paramètres
$host="serveur";
$user="user";
$passwd="mot de passe";
$localdir="doc à envoyer par FTP";
$remotedir="test";
$port="21";




if (func_num_args() == 7)
{
$stream = func_get_args(6);
}
else
{
$stream = ftp_connect($host, $port);
if (!ftp_login($stream, $user, $passwd))
return FALSE;

if (!ftp_chdir($stream, $remotedir))
return FALSE;


}



if (!is_readable($localdir))
return FALSE;

$dir = opendir($localdir);


if (is_resource($dir))
{
while($v = readdir($dir))
{


if ($v == '.' || $v == '..')
continue;

if (is_dir("$localdir/$v"))
{
if (!(@ftp_chdir($stream,"$v")))
{
ftp_mkdir($stream,"$v");
ftp_chdir($stream,"$v");
}

ftp_putdir($host,$user,$passwd,"$localdir/$v","$remotedir/$v",$port,$stream);
ftp_cdup($stream);
}
else
{
$fp = fopen("$localdir/$v",'r');
if (is_resource($fp))
{
ftp_fput($stream, $v, $fp, FTP_BINARY);
fclose($fp);
}
}
}

}



}



?>



Merci de votre aide !
Photo de telnes Message publié le lundi 14 avril 2008 à 14 h 40 par telnes. toujours revenir au debut - http://telnesmaster.free.fr/allhtml/index2.html - http://telnesmaster.free.fr/litetemplate - http://www.hotcontest.org
hello

déjà enlève le @

ensuite si tu n'a pas de message d'erreur c'est déjà le problème n'est pas syntaxique .

rajoute des echo 'par ci ' echo 'par la' pour savoir ou tu va dans tes conditions !

tu comprend ton erreur ou le problème .

++
Photo de Zeuz Message publié le lundi 14 avril 2008 à 15 h 32 par Zeuz. L'essentiel est de chercher, car finalement où est la fin ?
Merci de ton passage.

je viens de supprimer le @, ça na change rien.

Concernant les echo""; j'avais déjà essayé et il ne passe même pas dans la fonction... rien n'est affiché (seulement quand je le place entre le '<?php' et 'function ftp_putdir...' c'est à dire totalement à l'extérieur de la fonction).
Photo de telnes Message publié le lundi 14 avril 2008 à 16 h 19 par telnes. toujours revenir au debut - http://telnesmaster.free.fr/allhtml/index2.html - http://telnesmaster.free.fr/litetemplate - http://www.hotcontest.org
et ou tu l'appel ta fonction ?

parceque si rien ne rentre dedans ? c'est que tu l'appel pas :))

ajoute

error_reporting(E_ALL);

en haut de ton code !

++
Photo de Zeuz Message publié le lundi 14 avril 2008 à 17 h 22 par Zeuz. L'essentiel est de chercher, car finalement où est la fin ?
hum hum...

Je ne l'appelle pas ?

Comment dois-je l'appeler ???
Photo de telnes Message publié le mardi 15 avril 2008 à 00 h 41 par telnes. toujours revenir au debut - http://telnesmaster.free.fr/allhtml/index2.html - http://telnesmaster.free.fr/litetemplate - http://www.hotcontest.org
tu la trouver ou cette fonction ? tu la faite ?
Photo de Zeuz Message publié le mardi 15 avril 2008 à 09 h 55 par Zeuz. L'essentiel est de chercher, car finalement où est la fin ?
Je l'ai bricolée, mais j'ai trouvé la source sur un site de scripts (nexen.net)
Photo de telnes Message publié le mardi 15 avril 2008 à 11 h 47 par telnes. toujours revenir au debut - http://telnesmaster.free.fr/allhtml/index2.html - http://telnesmaster.free.fr/litetemplate - http://www.hotcontest.org
Photo de Zeuz Message publié le mardi 15 avril 2008 à 16 h 38 par Zeuz. L'essentiel est de chercher, car finalement où est la fin ?
Salut et merci de ton aide !

Ce script va mieux, mais il me retourne :

ftp_putdir :: enter //ça fonctionne
ftp_putdir :: ftp_connect //ça fonctionne
ftp_putdir :: localdir not readable //là ça fonctionne plus...

Mon dossier local est c:\ftp

Est-ce que je dois changer la syntaxe ?
Photo de telnes Message publié le mardi 15 avril 2008 à 17 h 13 par telnes. toujours revenir au debut - http://telnesmaster.free.fr/allhtml/index2.html - http://telnesmaster.free.fr/litetemplate - http://www.hotcontest.org
ce script est le tiens :)) mais j ai juste ajouter des echo pour savoir ou on est :)

ajoute
ligne 41 echo 'ftp_putdir :: localdir not readable : '.$localdir.'<br />';

histoire de voir ce qu'il y a dans la var ! ton serveur il est sur quel disque ?

++
Photo de Zeuz Message publié le mardi 15 avril 2008 à 17 h 23 par Zeuz. L'essentiel est de chercher, car finalement où est la fin ?
Après l'insertion en ligne 41 de echo 'ftp_putdir :: localdir not readable : '.$localdir.'<br />';

il me retourne :

ftp_putdir :: enter
ftp_putdir :: ftp_connect
ftp_putdir :: localdir not readable : c:\ftp // la variable d'adresse de mon dossier local est dans la variable $localdir="c:\ftp"; au début du script.



Mon dossier que je veux uploader se trouve à la racine de mon disque dur C.
Photo de telnes Message publié le mardi 15 avril 2008 à 17 h 32 par telnes. toujours revenir au debut - http://telnesmaster.free.fr/allhtml/index2.html - http://telnesmaster.free.fr/litetemplate - http://www.hotcontest.org
met 'c://ftp'

attention au majuscule

et a ne pas mettre tous ton OS sur le web :) car il y a une boucle récursive

++
Photo de Zeuz Message publié le mardi 15 avril 2008 à 18 h 17 par Zeuz. L'essentiel est de chercher, car finalement où est la fin ?
:-(

Ca ne fonctionne pas...

Je pense que ça doit venir de là : 'c://ftp' mais je ne sais pas comment corriger le problème !
Photo de telnes Message publié le mardi 15 avril 2008 à 20 h 00 par telnes. toujours revenir au debut - http://telnesmaster.free.fr/allhtml/index2.html - http://telnesmaster.free.fr/litetemplate - http://www.hotcontest.org
salut

tes sous vista ?

++
Photo de Zeuz Message publié le mardi 15 avril 2008 à 23 h 40 par Zeuz. L'essentiel est de chercher, car finalement où est la fin ?
Salut !

Non, sous XP
Photo de telnes Message publié le mercredi 16 avril 2008 à 12 h 55 par telnes. toujours revenir au debut - http://telnesmaster.free.fr/allhtml/index2.html - http://telnesmaster.free.fr/litetemplate - http://www.hotcontest.org
bas pourtant ca marche


ftp_putdir :: enter
ftp_putdir :: ftp_connect
ftp_putdir :: parcour de c://ftp
ftp_putdir :: PUTc://ftp/test
ftp_putdir :: PUTc://ftp/Copie de test
ftp_putdir :: PUTc://ftp/Copie (2) de test
ftp_putdir :: PUTc://ftp/Copie (3) de test
ftp_putdir :: PUTc://ftp/Copie (4) de test
ftp_putdir :: PUTc://ftp/Copie (5) de test
ftp_putdir :: PUTc://ftp/Copie (6) de test
ftp_putdir :: PUTc://ftp/Copie (7) de test
ftp_putdir :: PUTc://ftp/Copie (8) de test


et si tu essai de parcourir ton répertoire courant ? il dit quoi

ftp_putdir('ftp.url','anonymous','aaa','.','.');
ou
ftp_putdir('ftp.url','anonymous','aaa','./','.');
ou
ftp_putdir('ftp.url','anonymous','aaa','/','.');

++
Photo de Zeuz Message publié le mercredi 16 avril 2008 à 15 h 37 par Zeuz. L'essentiel est de chercher, car finalement où est la fin ?
Diable ! ! !

Ca ne passe toujours pas...
:-(


Pourtant :
- j'ai bien mon dossier à la racine de mon disque dur
- ma variable est comme la tienne $localdir="c://ftp"; (j'ai essayé avec et sans majuscules)
- rien ne change avec ces 3 versions :
ftp_putdir('serveur','login','pass','.','.');
ou
ftp_putdir('serveur','login','pass','./','.');
ou
ftp_putdir('serveur','login','pass','/','.');


Je pige pas ce qu'il se passe !
Photo de telnes Message publié le mercredi 16 avril 2008 à 16 h 48 par telnes. toujours revenir au debut - http://telnesmaster.free.fr/allhtml/index2.html - http://telnesmaster.free.fr/litetemplate - http://www.hotcontest.org
mmm

tu commence à ....

:))

safe_mode est a On ou à Off dans ton php.ini

ensuite tu est connecté en admin ou pas sur ton XP ?

et ensuite test l'exemple donné ici http://fr2.php.net/manual/fr/function.is-readable.php
dans une nouvelle page php

++
Photo de Zeuz Message publié le jeudi 17 avril 2008 à 09 h 59 par Zeuz. L'essentiel est de chercher, car finalement où est la fin ?
Salut !

Désolé d'être aussi lourd...


J'ai essayé l'exemple ci-dessus, mais rien non plus.


Comment puis-je accéder à mon fichier php.ini

En fait, j'utilise ce script en ligne et pas via EasyPhp.
Est-ce que ça peut être une explication ?


Merci encore de ton aide !
Photo de telnes Message publié le jeudi 17 avril 2008 à 10 h 14 par telnes. toujours revenir au debut - http://telnesmaster.free.fr/allhtml/index2.html - http://telnesmaster.free.fr/litetemplate - http://www.hotcontest.org

En fait, j'utilise ce script en ligne


c'est a dire que tu a mis le code sur un espace perso sur le net ?
Photo de Zeuz Message publié le jeudi 17 avril 2008 à 11 h 42 par Zeuz. L'essentiel est de chercher, car finalement où est la fin ?
oui, sur le net, ce n'est pas un espace perso, c'est sur exenservices.com
Photo de telnes Message publié le jeudi 17 avril 2008 à 12 h 22 par telnes. toujours revenir au debut - http://telnesmaster.free.fr/allhtml/index2.html - http://telnesmaster.free.fr/litetemplate - http://www.hotcontest.org
mouhahahahaha

et tu crois que lorsque tu lance un script php sur un serveur distant il connais ton c:/

??? ta fumer ou bien ...

php est un language exécuter coté serveur donc quand tu l'appel c'est le serveur qui l'exécute (dans son environement à lui windows / linux ).

c'est complètement illogique ton histoire. le scripte doit etre éxécuter sur TA machine, chercher les fichiers en LOCAL et les envoyer via FTP sur le serveur DISTANT. et pas dans un autre ordre

voila, reprend les bases :/

le script a raison : sur le serveur (linux probablement) il n'y a pas de répertoire c:/ftp

le ftp tu veux le faire de ou à ou ?
Photo de Zeuz Message publié le jeudi 17 avril 2008 à 15 h 51 par Zeuz. L'essentiel est de chercher, car finalement où est la fin ?
Tu as complètement raison, désolé...


J'avais l'utopie de pouvoir, à partir du serveur, piocher plusieurs fichiers sur mon disque local (dans un dossier donné c:/ftp) sans passer par un formulaire (où on ne peut envoyer les fichiers 1 à 1).
Photo de telnes Message publié le jeudi 17 avril 2008 à 17 h 10 par telnes. toujours revenir au debut - http://telnesmaster.free.fr/allhtml/index2.html - http://telnesmaster.free.fr/litetemplate - http://www.hotcontest.org
ca vaut au moins un toblorone ca :)

on clos le topic discrétement


++
Photo de Zeuz Message publié le vendredi 18 avril 2008 à 09 h 52 par Zeuz. L'essentiel est de chercher, car finalement où est la fin ?
Vraiment désolé d'avoir été aussi lourd...

Toutefois, 2000 merci pour ton aide !

++
Photo de telnes Message publié le vendredi 18 avril 2008 à 14 h 37 par telnes. toujours revenir au debut - http://telnesmaster.free.fr/allhtml/index2.html - http://telnesmaster.free.fr/litetemplate - http://www.hotcontest.org
cela dit si tu a un serveur FTP chez toi tu peux via ftp_connect t'y connecter depuis le serveur ! mais attention au timeout :/

liste des forums liste des discussions Participer à la discussion

Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.

ACCÉS COMMUNAUTÉ

Rejoignez ALL HTML

Publiez vos articles, actualités, communiqués ... Donnez votre avis, partagez votre réseau, rencontrez d'autres membres et participez à la vie de la communauté.

Les 5 dernières discussions

agenda