IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Ouvrir une vidéo qui se trouve dans un dossier protégé par deny from all


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 95
    Points : 54
    Points
    54
    Par défaut Ouvrir une vidéo qui se trouve dans un dossier protégé par deny from all
    Bonjour,

    Tout d'abord joyeux noël à tous.

    Le dossier "dossier/" est protégé avec un htaccess contenant deny from all.

    Pour le lire les documents je fait appel à un script, tout fonctionnes sauf pour les vidéos sous flash (flv).
    Je cherche, mais rien à faire je trouve pas alors si vous avez une idée je suis preneur merci
    Le script qui fait appel à la vidéo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    <?php
    session_start(); // On relaye la session
    if (session_is_registered("jsduznnhsbzhnzizop")){ // vérification sur la session authentification (la session est elle enregistrée ?)
    }
    else {
    header("Location:index.php?erreur=intru"); 
    exit;
    }
    include("interdit/conf.php");
    $fichier=str_replace('/','',$_GET['url']);
    $fichier=trim($fichier);
    $path = 'dossier/'.$dos.'/'.$fichier;
    if (is_file($path))
    {
    //$type = mime_content_type($path);
    $extension=substr($fichier,strrpos($fichier,".")+1);
    $extension= strtolower($extension);
    if($extension=="doc"){$type="application/msword";}
    if($extension=="jpg"){$type="image/jpeg";}
    if($extension=="jpeg"){$type="image/jpeg";}
    if($extension=="pdf"){$type="application/pdf";}
    //if($extension=="xls"){$type="application/excel";}
    if($extension=="xls"){$type="application/vnd.ms-excel";}
    if($extension=="zip"){$type="application/zip";}
    if($extension=="flv"){$type="application/x-shockwave-flash";}
     
        header('Content-type: ' . $type);
        readfile($path);
    } else {
        echo "Lecture impossible <br>";
        echo "Contactez l'administrateur<br>";
     
     
    }
    ?>

  2. #2
    Membre éprouvé Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Points : 933
    Points
    933
    Par défaut
    Citation Envoyé par anca2 Voir le message
    Pour le lire les documents je fait appel à un script, tout fonctionnes sauf pour les vidéos sous flash (flv).
    Qu'est-ce qui ne fonctionne pas pour les .flv ? Le test sur is_file($path) ou le test sur ($extension=="flv") ?

  3. #3
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    heu, si je comprend bien tu veux forcer la lecture du fichier? les flv nécessite un lecteur spécifique l'utilisation de flash comme tu l'indique dans ton code ne marchera pas.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 95
    Points : 54
    Points
    54
    Par défaut
    Bonjour,

    Merci pour votre réponse , bonne année à tous et désolé pour ce retard indépendant de ma volonté.

    Reprenons, on accède au site (cahier de texte pour les élèves) par un mot de passe tout les dossiers sont protégés par un htaccess deny…..

    Pour afficher un fichier, je passe par un script intermédiaire( 1er post sans
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    if($extension=="flv"){$type="application/x-shockwave-flash";}
    ).

    Je veux mettre des vidéos.

    J' ai un script contenant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     <object type="application/x-shockwave-flash" data="decodeur.swf" width="640" height="480">  
    <param name="movie" value="decodeur.swf" /> 
    <param name="flashvars"   value="config=film/film.txt" /> 
    <param name="wmode" value="transparent" />   
    <param name="menu" value="false" />
    </object>
    et dans film.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    flv=film/Secu_elec.flv
    title=La sécurité électrique  
    width=640
    height=480
    margin=1
    showstop=1
    showvolume=1
    autoload=0
    Le problème c'est que je ne peux pas accéder au film à cause du Deny..
    Bien sur, si je l'enlève tout fonctionne, mais alors le film peut se voir en passant par l'URL.

    Donc j'avais bricolé!! Mais, la question est, y a t-il un moyen?

  5. #5
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Tu n'accèdes pas au lecteur Flash (.swf) ou bien c'est ce dernier qui n'accède pas au fichier de configuration (.txt) ou au film (.flv) ?


    PS :
    Le MIME-Type "application/x-shockwave-flash" est pour les fichiers Flash (.swf).
    Pour les videos Flash (.flv) ce serait plutôt "video/x-flv" voire "application/octet-stream".

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 95
    Points : 54
    Points
    54
    Par défaut
    Bonjour,

    merci pour ta réponse.

    Il n'y a que le film qui dans un répertoire protégé.

    Donc il y a un écran blanc.

    Pour
    "PS :
    Le MIME-Type "application/x-shockwave-flash" est pour les fichiers Flash (.swf).
    Pour les videos Flash (.flv) ce serait plutôt "video/x-flv" voire "application/octet-stream".

    J'ai tout essayé, il n'y a aucune image.

    Mais, est-il possible de faire ce que je demande!!!

  7. #7
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Il n'y a que le film qui est dans un répertoire protégé
    Dans le code que tu nous présentes, le fichier film.txt se situe dans le même répertoire que le film et est donc inaccessible pour le lecteur flash.

    est-il possible de faire ce que je demande ?
    Oui, en passant bien par un script (ex. get.php). Nous aurions alors (dans un répertoire non protégé) le fichier de configuration film.txt contenant la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    flv=get.php?flv=Secu_elec.flv
    Le script étant prévu de renvoyer le contenu de la video (readfile) uniquement si la session a bien été ouverte après saisie du mot de passe.

    Exemple de structure de répertoire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    player/
    	config/
    		film.txt (doit être accessible par le lecteur flash)
     
    	film/
    		.htaccess (contenant Deny from all)
    		Secu_elec.flv
    		autre.flv
     
    	decodeur.swf
    	get.php (peut acceder aux fichiers .flv)

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 95
    Points : 54
    Points
    54
    Par défaut
    Merci pour ton aide.

    Dans le code que tu nous présentes, le fichier film.txt se situe dans le même répertoire que le film et est donc inaccessible pour le lecteur flash.
    C'est une erreur, il ny a que le film qui est dans un répertoire protégé.

    Oui, je comprend, mais quelles précisions:
    Nous aurions alors (dans un répertoire non protégé) le fichier de configuration file.txt contenant la ligne
    Ce que tu appel le répertoire file.txt c'est film.txt ou pas.

    Je ne comprend pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    flv=get.php?flv=Secu_elec.flv
    que mets-tu dans get.php? peut-être cela?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <object type="application/x-shockwave-flash" data="decodeur.swf" width="640" height="480">  
    <param name="movie" value="decodeur.swf" /> 
    <param name="flashvars"   value="config=non_protege/film.txt" /> 
    <param name="wmode" value="transparent" />   
    <param name="menu" value="false" />
    </object>
    et cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    title=La sécurité électrique  
    width=640
    height=480
    margin=1
    showstop=1
    showvolume=1
    autoload=0
    peut-être dans file.txt ou film.txt, ce qui donnerai un fichier txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    flv=get.php?flv=Secu_elec.flv
    title=La sécurité électrique  
    width=640
    height=480
    margin=1
    showstop=1
    showvolume=1
    autoload=0
    Ai-je bien compris

  9. #9
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    le répertoire file.txt c'est film.txt ou pas ?
    Oui je voulais bien dire le fichier film.txt. J'ai édité le message.

    Je ne comprend pas...
    flv=get.php?flv=Secu_elec.flv
    Que mets-tu dans get.php ?
    Le fichier (nommé pour l'exemple get.php) contient tout simplement le code que tu as placé dans le premier post.

    Mais il ne faut pas utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($extension=="flv"){$type="application/x-shockwave-flash";}
    mais plutôt...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	if($extension=="flv"){$type="video/x-flv";}
    // ou bien
    	if($extension=="flv"){$type="application/octet-stream";}
    peut-être dans file.txt ou film.txt, ce qui donnerai un fichier txt
    flv=get.php?flv=Secu_elec.flv
    title=La sécurité électrique
    width=640
    height=480
    margin=1
    showstop=1
    showvolume=1
    autoload=0
    C'est ça oui...

    Après il faut voir les restrictions du lecteur Flash. Par exemple : Requiert-il des adresses relatives ou absolues ?

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 95
    Points : 54
    Points
    54
    Par défaut
    ok, merci pour tes conseils.

    donc je ne mets plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     <object type="application/x-shockwave-flash" data="decodeur.swf" width="640" height="480">  
    <param name="movie" value="decodeur.swf" /> 
    <param name="flashvars"   value="non_protege/film.txt" /> 
    <param name="wmode" value="transparent" />   
    <param name="menu" value="false" />
    </object>
    Mais alors comment le decodeur saura le chemin

  11. #11
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    La balise <object> doit être placée uniquement dans la page xHTML.


    Le lecteur Flash se sert des variables incluses dans le paramètre flashvars de la balise <object>...

    Dans le code ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <param name="flashvars" value="config=non_protege/film.txt" />
    La variable config contient l'emplacement (relatif à la page en cours) du fichier de configuration.

    Le lecteur Flash pourra y accéder afin d'y trouver notamment la variable flv contenant l'emplacement de la video.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    flv=get.php?flv=Secu_elec.flv
    qui en fait correspond à l'adresse du script PHP qui charge la video si la personne a été identifiée.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 95
    Points : 54
    Points
    54
    Par défaut
    donc page avec ma balise sera

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <object type="application/x-shockwave-flash" data="decodeur.swf" width="640" height="480">  
    <param name="movie" value="decodeur.swf" /> 
    <param name="flashvars" value="config=non_protege/film.txt" />
    <param name="wmode" value="transparent" />   
    <param name="menu" value="false" />
    </object>

  13. #13
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Oui.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 95
    Points : 54
    Points
    54
    Par défaut
    ok, je vais voir

    Merci pour ton aide

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 95
    Points : 54
    Points
    54
    Par défaut
    le fichier txt n'est pas lu correctement.( le dossier qui contient le film n'est pas protégé afin de faire les essais)

    le fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    flv=film/get.php?url=peche.flv
    title=Un requin et plus au bout de la canne !
    width=640
    height=480
    margin=1
    showstop=1
    showvolume=1
    autoload=0
    le film n'est pas lu.

    Si je modifie la 1er ligne comme cela
    le film passe; conclusion la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (flv=film/get.php?url=peche.flv)
    n'est comprise!

  16. #16
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Il y a de multiples raisons pour que cela ne fonctionne pas.

    • Faut-il encoder les paramètres de l'URL dans le fichier de configuration ?

      En remplaçant le caractère '?' par '%3F' ainsi que le caractère '=' par '%3D'...
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      flv=film/get.php?url=peche.flv
      deviendrait
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      flv=film/get.php%3Furl%3Dpeche.flv
    • Le script get.php (*) ne contiendrait-il pas des erreurs ?

      Que se passe t-il si tu y accèdes directement ?

    • S'il n'y a pas d'erreurs de syntaxe...

      Renvoie t-il correctement les données du fichier .flv passé en paramètre ?

    • etc...


    (*) get.php pour l'exemple... Quel est son nom en réalité ?

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 95
    Points : 54
    Points
    54
    Par défaut
    Bonjour,

    Cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    flv=film/get.php%3Furl%3Dpeche.flv
    ne fonctionne pas.

    Get.php, c'est son nom

    Il n'y pas d'erreur dans get.php
    L'accés direct me retourne "Lecture impossible"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?php
    $fichier=str_replace('/','',$_GET['url']);
    $fichier=trim($fichier);
    $path = $fichier;
    if (is_file($path))
    {
    //if($extension=="flv"){$type="video/x-flv";}
    if($extension=="flv"){$type="application/octet-stream";}
        header('Content-type: ' . $type);
        readfile($path);
    } else {
              echo "Lecture impossible <br>";
              echo "Contactez l'administrateur<br>";
           }
    ?>
    J'ai modifié la 1er ligne du txt, j'ai mis:
    flv=film/get.php et dans get.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <?php
    $fichier= "peche.flv";
    $path = $fichier;
    if (is_file($path))
    {
    //if($extension=="flv"){$type="video/x-flv";}
    if($extension=="flv"){$type="application/octet-stream";}
        header('Content-type: ' . $type);
        readfile($path);
    } else {
              echo "Lecture impossible <br>";
              echo "Contactez l'administrateur<br>";
           }
    ?>
    Le film passe, donc get.php%3Furl%3Dpeche.flv n'est pas lu.

    Si je protège (deny) le dossier, le film ne passe plus

    Je vais voir cela tranquillement et proprement.

    Mais, ne pas hésiter si tu a des idée.

    Merci pour ton aide

  18. #18
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Je n'avais pas remarqué de suite que tu avais remplacé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    flv=get.php?url=fichier.flv
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    flv=film/get.php?url=fichier.flv
    Maintenant, le fichier get.php est inaccessible car il se situe dans le répertoire protégé.

    Il devrait être au même niveau que le lecteur Flash (au dessus du dossier film). Voir l'arborescence suggérée plus haut.


    Tente à nouveau avec ce code pour get.php (placé au bon endroit)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php
    $flv=isset($_GET['url'])?trim(basename((string)$_GET['url'])):'';
    if($flv!==''){
    	$ext=strtolower(substr($flv,strrpos($flv,'.')));
    	if($ext=='flv'){
    		$flv=dirname(__FILE__).DIRECTORY_SEPARATOR.'film'.DIRECTORY_SEPARATOR.$flv;
    		if(@file_exists($flv)){
    			header('Content-Type: application/octet-stream');
    			header('Content-Transfer-Encoding: binary');
    			if(@readfile($flv)===false)
    				$msg='Erreur de lecture';
    			else
    				exit();
    		}else
    			$msg='Fichier non trouv&eacute;';
    	}else
    		$msg='Param&egrave;tre invalide';
    }else
    	$msg='Param&egrave;tre manquant';
     
    echo 'Lecture impossible : '.$msg.'<br>Contactez l\'administrateur<br>';
    ?>
    En prenant soin de modifier la ligne dans le fichier film.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    flv=get.php?url=fichier.flv
    Etant donné que tu n'as qu'un répertoire, c'est au script PHP qu'il incombe de "se positionner" sur le répertoire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $flv=dirname(__FILE__).DIRECTORY_SEPARATOR.'film'.DIRECTORY_SEPARATOR.$flv;

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 95
    Points : 54
    Points
    54
    Par défaut
    Bonsoir,
    Vraiment merci pour ton aide.

    Donc j'ai mis dans un dossier "gestion_vidéo" non protégé:
    Le fichier peche.txt et le get.php et le lecteur.
    Dans un dossier "film" protégé par un deny on met le film peche.flv.

    J'ai mis ton script pour get et la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    flv=get.php?url=fichier.flv
    dans le txt.

    La ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     flv=get.php?url=fichier.flv
    n'est pas comprise.

    Par contre si l'on fait :

    Peche.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    flv=get.php
    title=Un requin et plus au bout de la canne !
    width=640
    height=480
    margin=1
    showstop=1
    showvolume=1
    autoload=0

    dans get.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    <?php
    $path = '../film/peche.flv';
    readfile($path);
    ?>
    Ca fonctionne aussi, la vérification de l'extension et le type sont définies dans le fichier html.

    et enfin dans le fichier html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ..............
    <object type="application/x-shockwave-flash" data="decodeur.swf" width="640" height="480">
    <param name="movie" value="gestion_video/decodeur.swf" />			
    <param name="flashvars" value="config=gestion_video/peche.txt" />
    <param name="wmode" value="transparent" />
    <param name="menu" value="false" />
       </object>
    .........

    Alors est-ce une solution je ne sais pas!
    Mais en créant 3 scripts,
    peche_html.php
    peche.php (ancien get.php)
    peche.txt.

    autre_html.php
    autre.php
    autre.txt.
    Je devrais n'en sortir.

    Je reprendrai ton script sur un support propre et à tête reposée .

    Dans tous les cas UN GRAND merci pour ton implication tu m'a été d'un grand secours.

    Je reviendrai rendre compte.

  20. #20
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Présumant que tu utilises le lecteur FLV de Neolao (d'après le fichier de configuration), j'ai fais plusieurs tests.

    Si c'est bien ce lecteur que tu utilises, j'en suis finalement arrivé à la même conclusion que toi.
    La ligne flv=get.php?url=fichier.flv n'est pas comprise
    En effet, dans le fichier de configuration il n'y pas moyen de placer une URL contenant des paramètres.

    N'ayant pas d'autre choix que de faire :
    Nous allons utiliser la réécriture d'URL (*).

    Nous plaçons un fichier ".htaccess" dans le répertoire "gestion_video" contenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    RewriteEngine On
    RewriteOptions Inherit
    RewriteRule ^([a-z0-9_-]+\.flv)$ get.php?url=$1 [NC,L]
    Ainsi lors de l'accès à
    fichier_quelconque.flv
    le serveur nous renvoie les données de
    get.php?url=fichier_quelconque.flv

    Voici à nouveau la partie du code de get.php corrigée et, prenant en compte le nouveau chemin.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
    $flv=isset($_GET['url'])?trim(basename((string)$_GET['url'])):'';
    if($flv!==''){
    	$ext=strtolower(substr($flv,strrpos($flv,'.')));
    	if($ext=='.flv'){
    		$flv=dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'film'.DIRECTORY_SEPARATOR.$flv;
    		if(file_exists($flv)){
    			header('Content-Type: video/x-flv');
    			if(@readfile($flv)===false)
    				$msg='Erreur de lecture';
    			else
    				exit();
    		}else
    			$msg='Fichier non trouv&eacute;';
    	}else
    		$msg='Param&egrave;tre invalide';
    }else
    	$msg='Param&egrave;tre manquant';
     
    echo 'Lecture impossible : '.$msg.'<br>Contactez l\'administrateur<br>';
    ?>
    La nouvelle arborescence
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    	gestion_video/
    
    			.htaccess	(URL Rewriting)
    			peche.txt	(contient flv=peche.flv)
    			get.php			
    			decodeur.swf
    
    	film/
    
    			.htaccess	(deny from all)
    			peche.flv
    			...
    
    	fichier.html (contient la balise <object>)
    (*) En éspérant que l'URL rewriting est possible sur ton hébergement.

Discussions similaires

  1. Exécution d'une procédure qui se trouve dans un autre classeur
    Par enchanté dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/07/2007, 09h31
  2. [HTML] Shape area sur une image qui se trouve dans un div
    Par Ryan Sheckler dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 19/06/2007, 17h48
  3. Réponses: 7
    Dernier message: 23/08/2006, 18h40
  4. Recuperer une image qui se trouve dans le presse papier
    Par kaderscream dans le forum C++Builder
    Réponses: 1
    Dernier message: 19/08/2006, 10h39
  5. Réponses: 7
    Dernier message: 16/06/2006, 16h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo