[PHP] Comment lister un répertoire sur un serveur à distance?

Comment lister un répertoire sur un serveur à distance? [PHP] - PHP - Programmation

Marsh Posté le 08-04-2003 à 21:06:31    

Salut,
Voilà mon script (en fait c'est un formulaire qui l'appelle et qui définit la variable $id_type):

Code :
  1. <?php
  2. $hote="localhost";
  3. $login="root";
  4. $pass="";
  5. $base="test";
  6. $id_type = $_POST['id_type'];
  7. $db = mysql_connect($hote, $login, $pass);
  8. mysql_select_db($base,$db);
  9. if(empty($id_type))
  10. {
  11. print("<center>Le <b>Type de console</b> est vide !</center>" );
  12. exit();
  13. }
  14. else
  15. {
  16. $req="SELECT * FROM serveur WHERE type='$id_type'";
  17. $res=mysql_query($req) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  18. while($r = mysql_fetch_array($res)){
  19. echo "Serveur $r[adrserv]:"."<BR>\n
  20. <IFRAME SRC=\"$r[adrserv]listefich.php?idserv=$r[idserv]\" MARGINWIDTH=0 MARGINHEIGHT=0 SCROLLING=no FRAMEBORDER=0 HSPACE=0 VSPACE=0 BORDERCOLOR=\"#000000\"></IFRAME>"."<BR>\n";
  21. }
  22. }
  23. ?>


 
Dans l'iframe, il appelle ce code:
 

Code :
  1. <html>
  2.   <head>
  3. <body onload="Ini()">
  4. <?php
  5. $hote="localhost";
  6. $login="root";
  7. $pass="";
  8. $base="test";
  9. $db = mysql_connect($hote, $login, $pass);
  10. mysql_select_db($base,$db);
  11. $rep=opendir('.');
  12. while ($file = readdir($rep)) {
  13. if($file != '..' && $file !='.' && $file !='') {
  14.     if (is_file($file)) {
  15.      $tabFichier[] = $file;
  16.     }
  17.    }
  18. }
  19. sort ($tabFichier);
  20. foreach ($tabFichier AS $file) {
  21. $poids = ceil(filesize($file)/1024);
  22. if(!mysql_query("INSERT INTO fichier VALUES ('', '$idserv', '$file', '$poids')" )){
  23. echo "le fichier \"$file\" existe déjà dans la base de données avec un poids de: $poids ko<BR>\n";
  24. }
  25. else {
  26. echo "le fichier \"$file\" a été ajouté à la base de données avec un poids de: $poids ko"."<BR>\n";
  27. }
  28. }
  29. closedir($rep);
  30. clearstatcache();
  31. ?>
  32. </body>
  33. </html>
  34. <script language="JavaScript">
  35. function Ini()
  36. {eval('self.parent.document.getElementById(self.name).height = document.body.scrollHeight +5;');}
  37. {eval('self.parent.document.getElementById(self.name).width = document.body.scrollWidth +5;');}
  38. </script>


 
Voilà comment ça fonctionne:
Le script 1 se trouve dans un serveur 1.
Le script 2 se trouve dans un serveur 2.
 
Le premier script vérifie quels serveurs on doit lister. Une fois qu'il a trouvé lesquels lister, il appelle, dans une iframe, le fichier "$adresse du serveur/listefich.php?$id des serveurs à lister" (listefich.php étant le deuxième script).
 
Le deuxième script liste les fichiers du serveur dans lequel il se trouve, et les insère dans la bdd mysql. Le problème est qu'il insère ces informations dans la bdd du serveur 2, et pas du serveur 1, càd le serveur principal du site, comme je le voudrais.
 
C'est bien possible de générer le code et de l'insérer dans mysql, mais dans ce cas mes uploaders ne pourront pas ajouter ce code car ils n'auront pas accès à la bdd.
 
Auriez-vous une solution pour que le script 2 insère les infos de fichiers dans la bdd du serveur 1?
 
Merci d'avance!

Reply

Marsh Posté le 08-04-2003 à 21:06:31   

Reply

Marsh Posté le 09-04-2003 à 13:24:42    

tu stock tes donné dans un champ chaché serveur 2 et tu post sur serveur 1


---------------
Si je suis près de toi c'est soit pour t'embrasser ou te croquer, alors à ce moment là rappelle toi de ce que tu m'as fait. du bien ou du mal?
Reply

Marsh Posté le 09-04-2003 à 14:06:56    

berceker a écrit :

tu stock tes donné dans un champ chaché serveur 2 et tu post sur serveur 1


càd? J'ai pas trop compris

Reply

Marsh Posté le 09-04-2003 à 15:42:11    

ReaL_MathoS a écrit :


càd? J'ai pas trop compris


si j'ai bien compris :
Tu as des données sur le site 2 (liste des ficher dans un répertoire) que tu veux transmettre au serveur 1.
donc tu recupere tes infos sous forme de chaine de caractères apres tu stocke l'info dasn un champs hidden ou area tu submit ver ton premier serveur  
en gros:  

Code :
  1. <form name="formulaire" method="post" action="http://www.serveur1.com/recup.php">
  2. <input type="hidden" name="xxx" value="tes sous forme de chaine de caractere">
  3. </form>
  4. <script>
  5. document.formulaire.submit();
  6. </script>


---------------
Si je suis près de toi c'est soit pour t'embrasser ou te croquer, alors à ce moment là rappelle toi de ce que tu m'as fait. du bien ou du mal?
Reply

Marsh Posté le 09-04-2003 à 16:45:56    

berceker a écrit :


si j'ai bien compris :
Tu as des données sur le site 2 (liste des ficher dans un répertoire) que tu veux transmettre au serveur 1.
donc tu recupere tes infos sous forme de chaine de caractères apres tu stocke l'info dasn un champs hidden ou area tu submit ver ton premier serveur  
en gros:  

Code :
  1. <form name="formulaire" method="post" action="http://www.serveur1.com/recup.php">
  2. <input type="hidden" name="xxx" value="tes sous forme de chaine de caractere">
  3. </form>
  4. <script>
  5. document.formulaire.submit();
  6. </script>




Sous forme de chaînes de caractères? càd? tu as pas un exemple? Parce que là je vois pas trop...


Message édité par real_mathos le 09-04-2003 à 16:47:37
Reply

Marsh Posté le 10-04-2003 à 20:30:17    

ReaL_MathoS a écrit :


Sous forme de chaînes de caractères? càd? tu as pas un exemple? Parce que là je vois pas trop...


ben en faite dans champs hidden il y a aura <input type="hidden name="" value="plein de code html que tu auras pour afficher le contenu de la liste">


---------------
Si je suis près de toi c'est soit pour t'embrasser ou te croquer, alors à ce moment là rappelle toi de ce que tu m'as fait. du bien ou du mal?
Reply

Marsh Posté le 10-04-2003 à 20:40:11    

berceker a écrit :


ben en faite dans champs hidden il y a aura <input type="hidden name="" value="plein de code html que tu auras pour afficher le contenu de la liste">


Merci bcp j'ai essayé et ça fonctionne!!!

Reply

Sujets relatifs:

Leave a Replay

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