Ouvrir explorateur Windows 7/8 PHP (exec) sous Wamp

cs_tiouil Messages postés 51 Date d'inscription dimanche 8 août 2010 Statut Membre Dernière intervention 2 mars 2018 - 15 mars 2013 à 14:37
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 30 mars 2013 à 15:56
Bonjour,

encore une fois, il y a fallu que je touche à quelque chose (sans doute) pour que ca ne fonctionne plus.

J'ai un site en local, qui restera toujours en local. Il y à encore 4/5 mois j'étais sur EasyPHP, devenu obsolète je suis passé à Wamp qui me parait très bon. Tout cela en passant aussi à Windows 8.

Le souci c'est que j'ai une page web possédant un lien vers un page censée m'ouvrir l'explorateur windows avec le fichier sélectionn (Nom du fichier obtenu grâce au lien de la page d'avant).

Avant il me l'ouvrais bien, mais maintenant rien. J'ai eu beau essayer avec des '/' puis des '\', puis des '\\', et des '//', avec les chemins absolus, relatifs, explorer, explorer.exe et j'en passe. RIEN.

Voici le code entier de la page :
<?php
    $encoding = mb_detect_encoding($_REQUEST['S'],'UTF-8,ISO-8859-1');
    if($encoding == 'ISO-8859-1')
        $serie = utf8_encode($_REQUEST['S']);
    else
        $serie = $_REQUEST['S'];
 
    function Accents($string)
    {
        $string = str_replace("é","é",$string);
        $string = str_replace("Ã&#168;","è",$string);
        $string = str_replace("ê","ê",$string);
        $string = str_replace("â","â",$string);
        $string = str_replace("Ã ","à",$string);
        $string = str_replace("î","î",$string);
        $string = str_replace("Ã&#180;","ô",$string);
        $string = str_replace("û","û",$string);
        $string = str_replace("ù","ù",$string);
        $string = str_replace("ç","ç",$string);
        return $string;
    }
 
    $serie = Accents($serie);
         
    $chemin = /*$_SERVER["DOCUMENT_ROOT"] . "/Bandes-dessinees/*/"./Fiches/" . $serie . ".xml";
    //$chemin = str_replace('/','"',$chemin);
    //$chemin = str_replace('"','',$chemin);
    $chemin = str_replace('/','\\',$chemin);
     
    //echo $chemin;
    $monExec = "explorer /select, "$chemin"";
    echo $monExec;
    exec($monExec);
    //echo "<meta http-equiv="refresh" content="0; URL=Fiches.php">";
?>


Je sais que j'ai des soucis d'encodage mais je l'ai reglerais après car cela ne vient pas de là, étant donné que même avec un nom simple comme "Gaston.xml", cela ne fonctionne pas.

J'ai aussi vérifier que le fichier existait.

J'ai aussi vu que cela pouvait venir de l'interdiction d'intérragir entre WampServer et Explorateur (dans Services.msc) mais même en ayant accepter, toujours RIEN.

PS : je fait un echo et la commande passé telle qu'elle dans un invite de commande fonctionne. Etrange non ?

Merci à tous par avance.


Cyril Z.

4 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
15 mars 2013 à 19:12
Bonjour,

Petite remarque bête :
Ta méthode exécute Explorer.exe sur le serveur, donc si tu utilises un serveur situé sur une autre machine, c'est normal que ça ne s'affiche pas sur le client.

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
0
cs_tiouil Messages postés 51 Date d'inscription dimanche 8 août 2010 Statut Membre Dernière intervention 2 mars 2018
15 mars 2013 à 20:06
Salut, et merci pour ta réponse.

Comme je l'ai dit, c'est un serveur local (WampServer) et il y a 2/3 mois, cela fonctionnait. Les seuls changements dont je me rappelle c'est qu'avant j'étais avec EasyPHP sous Windows 7. Maintenant je suis sous WampServer avec Windows 8.

Aujourd'hui j'ai encore fais des tests sur une page vraiment ne contenant qu'un exec et le chemin ecrit avec le code (pas de dynamique donc), mais cela ne fonctionne toujours pas. Et si je veux lancer autre chose qu'explorer.exe, comme un logiciel situé directement sur mon serveur local (avec mes autres fichiers *.php donc), idem ca ne fonctionne toujours pas. Par contre un simple
exec("echo coucou > Test.txt")

fonctionne"

Merci d'avance.

Cyril Z.
0
cs_tiouil Messages postés 51 Date d'inscription dimanche 8 août 2010 Statut Membre Dernière intervention 2 mars 2018
18 mars 2013 à 19:30
Petit up car je n'ai toujours pas la solution.


Cyril Z.
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
30 mars 2013 à 15:56
Bonjour,

Voir si Windows 8 ne protège pas plus fortement le PC sur ce point, mais comme je le connais peu, je ne suis pas sûr de pouvoir apporter une réponse viable.

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
0
Rejoignez-nous