accéder et lire un répertoire/fichiers externe

Soucis de programmation et proposition de scripts.
6 message(s)Page 1 sur 1

accéder et lire un répertoire/fichiers externe

Messagepar Guenesterie » Mar Mars 31, 2015 7:32 am

pour l'origine du soucis voir https://forum.shost.ca/posting.php?mode=post&f=28

mon script images.php affiche les sous-répertoires/fichiers (images et vidéos) d'un répertoire donné (fonction récursive) . Ces fichiers sont ensuite affichés grâce à une lightbox.

voici donc la partie du code qui nécessite une refonte de manière à pouvoir accéder à un répertoire se trouvant sur un autre serveur.

Code : Tout sélectionner
$dir_nom = './medias/';
Liste_Dossiers($dir_nom)


Code : Tout sélectionner
function Liste_Dossiers($OpenedPath) {
$dir = opendir($OpenedPath) or die('Erreur de listage : le répertoire n\'existe pas'); // on ouvre le contenu du dossier courant

   while($element = readdir($dir)) {
      if($element != '.' && $element != '..') {
         if (is_dir($OpenedPath.'/'.$element))
         {
            $dossier[] = $element;
            $date_dossier[] = date("Y/m/d - h:i:s",filemtime($OpenedPath.'/'.$element));
            array_multisort($date_dossier,$dossier);
         } else {   
            $fichier[] = $element;
            $date_fichier[] = date("Y/m/d - h:i:s",filemtime($OpenedPath.'/'.$element));
            array_multisort($date_fichier,$fichier);
         }
      }
   }
   closedir($dir);

...... (partie d'affichage) .....

}



Je crois savoir que "OpenDir", "ReadDir" et CloseDir ne peuvent fonctionner sur un accès distant ... donc si quelqu'un a une idée ... je suis preneur.

Merci de votre aide

cordialement

Philippe
--------------------------
Bien cordialement

Philippe
Guenesterie offline
Avatar de l’utilisateur
Message(s) : 54
Inscription : Lun Déc 30, 2013 9:24 am

Re: accéder et lire un répertoire/fichiers externe

Messagepar Dominick » Mar Mars 31, 2015 9:45 am

Bonjour,

Malheureusement, ces fonctions PHP ne peuvent pas lister le contenu d'un répertoire sur un serveur externe, autrement il s'agirait d'une faille de sécurité majeure.

Je crois que la meilleure procédure serait de créer une base de données contenant un lien avec la location réelle du vidéo.
Cela pourrait également ouvrir la porte vers l'intégration d'un lecteur YouTube et autre !

De plus, ce script image comporte une grande faille. http://guenesterie.shost.ca/index.php?i ... web/stats/

Cordialement,
Portfolio labrie.ca
Administrateur sHost.ca
Statut des services : https://statut.shost.ca/

Desktop NAS | i7 3770k OC | 24GB DDR3 | 128GB SSD & 2TB & 4x4TB & 5TB HDD | Sapphire Radeon R9 290 | 700w PSU | ESXi 6.7
UPS 1500VA/900W Backup Battery
Fibre Optique 300Mbps symétrique
MacBook Air 4,2 (2011, 13in) | i5 @ 1.7Ghz; 2 core| SSD128GB | macOS 10.13
Dominick offline
Site Admin
Avatar de l’utilisateur
Message(s) : 1508
Inscription : Ven Juil 27, 2012 11:39 am
Localisation : Fredericton, Canada

Re: accéder et lire un répertoire/fichiers externe

Messagepar Guenesterie » Mar Mars 31, 2015 2:15 pm

Merci Dominick,

je vais réfléchir à une autre solution ... et merci pour la faille

cordialement
--------------------------
Bien cordialement

Philippe
Guenesterie offline
Avatar de l’utilisateur
Message(s) : 54
Inscription : Lun Déc 30, 2013 9:24 am

Re: accéder et lire un répertoire/fichiers externe

Messagepar Guenesterie » Sam Avr 04, 2015 1:46 am

Bonjour tous,

je pense avoir résolu la faille mise en évidence par Dominick. Merci à lui.

je reviens donc vers les "pros" du php.

J'aurais souhaité conserver l'idée de mon script (pas de maintenance ni de MAJ à faire ... il suffit d'ajouter ou d'enlever un répertoire/ une image et/ou une vidéo pour que ca se mette à jour tout seul .. tout en respectant le règlement.

L'idée est donc d'héberger mon répertoire médias (et ses sous-répertoires) en externe et de "lire" son contenu avec le code suivant (qui fonctionne parfaitement) se trouvant sur le serveur externe

Liste_Medias.php
Code : Tout sélectionner
<?php
if (isset($_GET['repertoire']))
{
   $OpenedPath = "./".$_GET['repertoire']."/";
   $dir = opendir($OpenedPath) or die('Erreur de listage : le répertoire n\'existe pas');
   while($element = readdir($dir)) {
      if($element != '.' && $element != '..') {
         if (is_dir($OpenedPath.'/'.$element))
         {
            $dossier[] = $element;
            $date_dossier[] = date("Y/m/d - h:i:s",filemtime($OpenedPath.'/'.$element));
            array_multisort($date_dossier,$dossier);
            //echo $element."<br />";// Débug
         } else {   
            $fichier[] = $element;
            $date_fichier[] = date("Y/m/d - h:i:s",filemtime($OpenedPath.'/'.$element));
            array_multisort($date_fichier,$fichier);
            //echo $element."<br />"; // Débug
         }
      }
   }
   closedir($dir);
} else {
   echo "Erreur de transfert : Répertoire inconnu";
}
?>


ce code étant appelé par une page de mon site sur shost.ca du genre

Appel_Liste_Medias.php
Code : Tout sélectionner
<?php
    $contenu = file_get_contents('http://monhebergementexterieur/liste_Medias.php?repertoire=medias') ;
?>


Ce que je ne sais pas faire : comment récupérer automatiquement le contenu des variables $dossier[] et $fichier[] du serveur extérieur vers ma page Appel_Liste_Medias.php chez shost.ca.

Une fois que je récupère le contenu de ces variables, il ne me reste qu'à l'afficher dans mon site.

Merci à tous ceux qui pourront m'aider

Cordialement
--------------------------
Bien cordialement

Philippe
Guenesterie offline
Avatar de l’utilisateur
Message(s) : 54
Inscription : Lun Déc 30, 2013 9:24 am

Re: accéder et lire un répertoire/fichiers externe

Messagepar xmath279 » Sam Avr 04, 2015 1:48 pm

Bonjour,

Dans un cas comme celui-ci, cela doublerait la bande passante utilisée par votre site web. Dans le cas où les vidéos sont hébergés chez nous (ce que nous ne pouvons offrir), le vidéo serait simplement envoyé à l'utilisateur. Dans le cas où vous iriez chercher le vidéo d'un serveur externe de cette façon, vous vous trouveriez à télécharger le vidéo à chaque fois du serveur externe, et à partir des informations reçues, le serveur (sHost.ca) enverrait le vidéo au client.

Et c'est pourquoi nous suggérons toujours des solutions dédiées à ce type d'utilisation, comme Vimeo ou YouTube, qui permettent de faire des playlists pour que tous vos vidéos soient regroupés.

Cordialement,
Mathieu Quesnel
Administrateur [sHost.ca]
Administrateur sHost.ca

MSI X299 Raider | Intel Core i7 7800X @ 4.5GHz | 32GB DDR4 | ADATASSD 256GB & SandiskSSD 480GB | GeForce 980Ti | OSX 10.13
MSI Z77A-G45 | Intel Core i7 3770k @ 4.5GHz | 16GB DDR3 | WD320GB | AMD Radeon R9 380X | OSX 10.12
Retina MacBook Pro | Intel Core i7 3720QM @ 2.6GHz | 16GB DDR3 | AppleSSD500GB | GeForce GT650M | OSX 10.13
xmath279 offline
Site Admin
Avatar de l’utilisateur
Message(s) : 176
Inscription : Mar Août 14, 2012 7:22 pm
Localisation : Saint-Augustin-de-Desmaures, QC, Canada

Re: accéder et lire un répertoire/fichiers externe

Messagepar Guenesterie » Dim Avr 05, 2015 1:32 am

Bonjour Mathieu,

je ne comprends pas bien ...

A mon avis, une fois que j'ai récupéré ma liste des photos/vidéos, les liens vers les vidéos pointeront directement sur le serveur distant et donc ca ne passera plus par shost.ca. Est-ce que je me trompe?

par exemple un lien http://guenetsrcom.free.fr/Guenesterie/ ... 13-TSB.flv dans mon site ne passera pas par shost, non?

J'ai besoin de récupérer le contenu des variables uniquement pour "fabriquer" mes liens vers le serveur externe.

En plus, avec 5 visites par jour (qui ne visualisent pas forcément une vidéo) ce n'est surement pas mon site qui va saturer votre bande passante :mrgreen: ... mais bon ... je comprends bien que la règle doit être la même pour tous.
--------------------------
Bien cordialement

Philippe
Guenesterie offline
Avatar de l’utilisateur
Message(s) : 54
Inscription : Lun Déc 30, 2013 9:24 am

6 message(s)Page 1 sur 1

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité

cron