[php] connexion à un serveur FTP

Fermé
mony84 Messages postés 68 Date d'inscription mercredi 19 juillet 2006 Statut Membre Dernière intervention 5 octobre 2010 - 23 août 2007 à 10:12
mony84 Messages postés 68 Date d'inscription mercredi 19 juillet 2006 Statut Membre Dernière intervention 5 octobre 2010 - 31 août 2007 à 12:00
bonjour,
je ne suis pas sure que c'est le bon endroit pour posterce sujet mais j'espère qu'il l'est :)
je suis entrain de développer un site internet pour une entreprise. J'ai une page pour s'enregistrer et récupérer quelques informations sur les clients. Je veux à partir du login et du mot de passe stockés ds ma base de données et à travers le site faire de sorte que chaque client accède à un répertoire qui lui est alloué sur un serveur ftp.
Normalement, chaque client doit disposer d'un répertoire qui contient des documents concernant son activité avec cette entreprise.
J'ai mis sur chaque page des petits input pour permettre aux clients de se logger et j'utilise les sessions avec php pour maintenir la connexion tt au long de la navigation.
mon problème c'est que je ne sais pas comment faire pour permettre au client de visualiser le contenu de son répertoire à partir du site.

Est ce qu'il ya quelqu'un qui peut m'aider? Et merci par avance

3 réponses

mony84 Messages postés 68 Date d'inscription mercredi 19 juillet 2006 Statut Membre Dernière intervention 5 octobre 2010 11
23 août 2007 à 11:51
j'ai installé FileZilla Server avec le port 21 mais il me renvoie l'erreur suivante :

Error, could not connect to server
Trying to reconnect in 5 seconds
1
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
23 août 2007 à 10:24
Bonjour,

Tu trouveras normalement ton bonheur là-dedans :
https://www.php.net/manual/fr/ref.ftp.php

Xavier, rtfm :)
0
mony84 Messages postés 68 Date d'inscription mercredi 19 juillet 2006 Statut Membre Dernière intervention 5 octobre 2010 11
23 août 2007 à 10:37
merci Reivax962, je vai voir le tutorial et j'espère trouver la solution.
0
mony84 Messages postés 68 Date d'inscription mercredi 19 juillet 2006 Statut Membre Dernière intervention 5 octobre 2010 11
23 août 2007 à 10:53
je travaille sur easyphp et il n'y pa de serveur ftp inclus. Est ce que t'a un lien pour télécharger et créer un serveur ftp en local pour faire les tests sur les scripts que je n'ai pa encore écrit :)
0
mony84 Messages postés 68 Date d'inscription mercredi 19 juillet 2006 Statut Membre Dernière intervention 5 octobre 2010 11
31 août 2007 à 12:00
Je poste ici le code que j'ai écrit et qui permet de ce déplacer ds l'arborescence d'un serveur ftp.
Le seul ennui que j'ai, c'est que lorqu'on click sur un lien pointant vers un fichier (image ou doc) un boite de dialogue s'ouvre et demande chaque fois le login et le mot de passe. Ce n'est pas trop pratique pour les utilisateurs.

<?php 

if ((isset ($_SESSION['Session']['login'])) && (isset ($_SESSION['Session']['password']))){
$server=".......";
$user=".........";
$pswd="......" ;


$connexion=ftp_connect($server) or die ("this server doesn't exist") ;
ftp_login($connexion,$user,$pswd);

ftp_pasv( $connexion, true );

if ((isset($_GET['repertoire'])) && ($_GET['repertoire']!="")){
$repertoire=$_GET['repertoire'];
}
else{
$repertoire="/";
}



function listerRepertoire($repertoire){
global $connexion;

if ($repertoire!="/"){
echo $repertoire;
$chaine=substr(substr($repertoire,0, -1),0,1+strrpos(substr($repertoire,0,-1),"/"));
if  (substr($chaine, -1, 1)=="/"){
$rest = substr($chaine, 0, -1); 
echo "<a href=\"myAccount.php?repertoire=".$rest."\"><h2><font color=\"green\">Go to upper level</font></h2></a>\n";
}
else {
echo "<a href=\"myAccount.php?repertoire=".$chaine."\"><h2><font color=\"green\">Go to upper level</font></h2></a>\n";
}

}}


listerRepertoire($repertoire);








function get_type($perms)
     {
        if (substr($perms, 0, 1) == "d")
         {
            return 'folder';
         }
        elseif (substr($perms, 0, 1) == "l")
         {
            return 'link';
         }
        else
         {
            return 'file';
         }
     }


$array=ftp_rawlist($connexion,$repertoire);

    foreach($array as $curraw)
    {
        $struc = array();
        $current = preg_split("/[\s]+/",$curraw,9);
		
		
            $struc['perms']    = $current[0];
            $struc['number']= $current[1];
            $struc['owner']    = $current[2];
            $struc['group']    = $current[3];
            $struc['size']    = $current[4];
            $struc['month']    = $current[5];
            $struc['day']    = $current[6];
            $struc['time']    = $current[7];
            $struc['name']    = str_replace('//','',$current[8]);
			
			
			
           if (get_type($struc['perms']) == "folder"){
		 
		   $RootFolder=$repertoire;
		   echo "<table><tr><td>";
		   echo "<a><img src='images/folder.gif' alt='folder' height='25px' width='25px'> </a></td><td>";
		  
		   echo "<a href='myAccount.php?repertoire=";
		   echo $RootFolder;
		   if ($repertoire!="/") echo "/";
		   echo $struc['name']."'>";
		  echo  $struc['name'];
		   echo "</a></td></tr></table>";
		   }
		   else
		   {
		   echo "<table><tr><td>";
		      echo "<a><img src='images/file.gif' alt='file' height='25px' width='25px'> </a></td><td>";
		   if ($repertoire=="/"){
		   echo "<a href='ftp://".$server."/". $struc['name']."'>";
		   }
		   else echo  "<a href='ftp://".$server."".$repertoire."/". $struc['name']."'>";//c'est ici que j'ai des ennuis
		   echo $struc['name'];
		   echo "</a></td></tr></table>";
		   }
          
           
    }

	
	}
	
	else {
	print ("<br><br><br>you have to connect using your login and password");
	}
0