Problème avec NLST des fonctions FTP de PHP

Problème avec NLST des fonctions FTP de PHP - PHP - Programmation

Marsh Posté le 25-08-2006 à 06:02:44    

Bonjour!
 
Alors voilà j'ai un problème avec la fonction NLST (ftp_nlist) des fonctions ftp de PHP. Lorsque je le met dans un script, il ne fonctionne pas sauf si je le test depuis mon PC. Mais d'un site vers le serveur FTP, il refuse.
Quel peut en être la cause?
J'ai essayer de mettre la commande ftp_pasv (pour le mode passif) avant, mais ça ne change rien...
 
Un morceau du code:
 
 
 
include ("conf/confftp.php" );
 
$conn_id = ftp_connect("$hostftp" );
 
 
$login_result = ftp_login($conn_id, "$loginftp", "$passftp" );
 
 
if ((!$conn_id) || (!$login_result)) {
        echo "<h4 style={color:red;}>La connexion FTP a échoué!</h3></p>";
        die;
    }
 
$chdir_result = ftp_chdir($conn_id,"htdocs" );
 
if (!$chdir_result){
 echo "<h4 style={color:red;}>Le changement de dossier a échoué</h3></p>";
 die;
 }
 
$chdir_result = ftp_chdir($conn_id,"photos" );
 
if (!$chdir_result){
 echo "<h4 style={color:red;}>Le changement de dossier a échoué</h3></p>";
 die;
 }
 
 
$fichiers = ftp_nlist($conn_id,'');
if (!$fichiers){
echo ('<h4 style="{color:red;}">Erreur de listage fichiers</h4>');
die;
}
 
ftp_quit($conn_id);
 
foreach($fichiers as $source){
$lienphoto = $source;
if (testerextension($source)){
if ((strlen($source)) > 13 ){
$source = substr($source,0,13).'...';
}
 echo('<div class="photos">
  <a href="htdocs/photos/'.$lienphoto.'" target="_blank">
  <img src="htdocs/photos/'.$lienphoto.'" width="100px" height="100px" />
  </a>
  '.$source.'
  </div>');
 }
}
 
 
Si vous voyez d'ou peut venir le problème...
 
Merci!

Message cité 1 fois
Message édité par OhAime971 le 25-08-2006 à 06:28:38
Reply

Marsh Posté le 25-08-2006 à 06:02:44   

Reply

Marsh Posté le 25-08-2006 à 12:26:36    

OhAime971 a écrit :

Bonjour!
 
Alors voilà j'ai un problème avec la fonction NLST (ftp_nlist) des fonctions ftp de PHP. Lorsque je le met dans un script, il ne fonctionne pas sauf si je le test depuis mon PC. Mais d'un site vers le serveur FTP, il refuse.
Quel peut en être la cause?
J'ai essayer de mettre la commande ftp_pasv (pour le mode passif) avant, mais ça ne change rien...
 
Un morceau du code:
 
 
 
include ("conf/confftp.php" );
 
$conn_id = ftp_connect("$hostftp" );
 
 
$login_result = ftp_login($conn_id, "$loginftp", "$passftp" );
 
 
if ((!$conn_id) || (!$login_result)) {
        echo "<h4 style={color:red;}>La connexion FTP a échoué!</h3></p>";
        die;
    }
 
$chdir_result = ftp_chdir($conn_id,"htdocs" );
 
if (!$chdir_result){
 echo "<h4 style={color:red;}>Le changement de dossier a échoué</h3></p>";
 die;
 }
 
$chdir_result = ftp_chdir($conn_id,"photos" );
 
if (!$chdir_result){
 echo "<h4 style={color:red;}>Le changement de dossier a échoué</h3></p>";
 die;
 }
 
 
$fichiers = ftp_nlist($conn_id,'');
if (!$fichiers){
echo ('<h4 style="{color:red;}">Erreur de listage fichiers</h4>');
die;
}
 
ftp_quit($conn_id);
 
foreach($fichiers as $source){
$lienphoto = $source;
if (testerextension($source)){
if ((strlen($source)) > 13 ){
$source = substr($source,0,13).'...';
}
 echo('<div class="photos">
  <a href="htdocs/photos/'.$lienphoto.'" target="_blank">
  <img src="htdocs/photos/'.$lienphoto.'" width="100px" height="100px" />
  </a>
  '.$source.'
  </div>');
 }
}
 
 
Si vous voyez d'ou peut venir le problème...
 
Merci!


 
 
Slt kan tu dis je cite "il ne fonctionne pas..." Ca veux dire koi exactement ?? Tu as un message d'erreur ?? tu n'arrive pas a Voir les photo ?? OU ????
 
 
Sans plus de precision sur ton bug ,je dirais que ton probleme viens de ce bout de code  :
 
echo('<div class="photos">
  <a href="htdocs/photos/'.$lienphoto.'" target="_blank">
  <img src="htdocs/photos/'.$lienphoto.'" width="100px" height="100px" />
  </a>
  '.$source.'
  </div>');
 }
 

Reply

Marsh Posté le 25-08-2006 à 17:45:30    

Oui pardon,
 
En fait, j'ai l'erreur de listage de fichier, donc la fonction ftp_nlist qui est refusée.
 
Mais si je le test depuis mon pc, ça fonctionne, dès que je le publie sur internet, et que je le test il ne fonctionne plus...
 
Se pourrait-il que ce soit au niveau du serveur qui héberge le site qui n'autorise pas ça?

Reply

Marsh Posté le 27-08-2006 à 12:22:57    

Exact, le serveur FTP doit être configuré pour accepter la commande list. Il semble qu'il n'accepte cette commande qu'en local. Donc, à voir si tu peut reconfigurer le serveur FTP, sinon tu peut toujours mettre le listing des fichiers dans un fichier texte (à la main) et en bidouillant un peu tu peut reproduire un list artificiel.


Message édité par nargy le 27-08-2006 à 12:23:30
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed