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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Forum] PHP WINDOWS dézipper fichier avec mot de passe


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Points : 5
    Points
    5
    Par défaut [Forum] PHP WINDOWS dézipper fichier avec mot de passe
    Bonjour à tous,
    Description de ce que je désire faire:

    je désire faire un script php qui va se dérouler en 3 temps:

    1-Affichage et téléchargement de .Zip présents dans un serveur FTP
    2-Extraction des fichiers zip: je bloque ici
    3-Lecture des fichiers textes (contenu dans les zip) pour une mise à jour de ma BDD

    Description de mon problème:

    Je suis bloqué si le zip est protégé par un mot de passe. Sinon tout marche très bien (bien entendu je possède le mot de passe):


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $zip = new ZipArchive;
        if ($zip->open("./data/".$nom_fichier) === TRUE) {
            $zip->extractTo('./data/');
            $zip->close();
            echo "ok";
        } else {
            echo 'echec';
        }
    Je n'ai pas d'erreur, c'est juste une constatation de ma part. Pour tous les fichiers sans mot de passe= aucun problème, tous les fichiers avec mot de passe= aucune extraction.

    Environnement: Windows. Je le précise car j'ai trouvé une méthode qui fait appel à "system", ce qui est inutile dans mon cas.
    Mes recherches:

    J'ai trouvé deux scripts sur un autre site qui ont l'air intéressant mais l'environnement semble être plutôt du linux et je ne vois pas où intervient le mot de passe:

    Ici on parle de RarArchive, mais je n'ai pas réussi à l'installer correctement: http://fr2.php.net/manual/fr/rararch...protege-passe/

    J'ai pourtant téléchargé la DLL pour Windows, et je l'ai ajouté dans le fichier ini.php

    Je ne vais pas mettre tous les liens que j'ai parcouru mais globalement on retrouve toujours la même chose (ou appel à "system" pour Linux... et je n'ai pu résoudre mon problème c'est pourquoi je me tourne vers vous.

    Je rappelle encore une fois que je veux que ça marche sous Windows

    Je vous remercie et vous souhaite une bonne journée.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Vraiment personne ?

    Merci encore

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Un appel à system() en passant par un soft tiers du genre 7zip ca ne ferait pas l'affaire ?

    Du genre : 7z e archive.zip -pmonmotdepasse
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Un appel à system() en passant par un soft tiers du genre 7zip ca ne ferait pas l'affaire ?

    Du genre : 7z e archive.zip -pmonmotdepasse
    Merci pour ta réponse effectivement ça me semble une bonne idée mais j'ai voulu testé ma commande sous 'cmd' et lorsque je tape 7z e mon_chemin_vers_zip -pmonmotdepasse il me dit "7z n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes."

    J'ai pourtant bien 7zip d'installé.
    J'ai testé de mettre le chemin de l'exécutable directement mais toujours la même erreur.
    J'ai regardé la doc : http://sevenzip.sourceforge.jp/chm/c...ds/extract.htm mais impossible de faire marcher ma commande. Ou est-ce que je me trompe ? Merci encore



    je vais maintenant essayer de le faire depuis mon script PHP, je vous tiens au courant.

    EDIT 2=> je n'ai pas réussi à faire fonctionner mon script PHP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    try{   
        system("set PATH=%PATH%;C:\\Program Files\\7-Zip");
        system("7z");
        system("7z e -pmonpass -odossierdestination cheminzip");
        }catch(Exception $e){
            echo $e->getMessage();
        }
    je n'ai rien qui s'affiche à l'écran et rien qui s'est dézippé.
    je doit merder dans l'appel à system puisque la commande fonctionne bien sous CMD...

    EDIT 3=> TOUT FONCTIONNE par contre je n'ai pas tellement résolu mon problème de l'édit 2... disons que je l'ai contourné en créant un .bat et en l'exécutant depuis mon PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $path="C:\\wamp\\www\\".$nom_fichier;
            exec("extraction.bat ".$path);
    ça fonctionne parfaitement alors je vais mettre mon problème en résolu. Toutefois si quelqu'un identifie mon erreur pour l'appel de system() je serais bien heureux de comprendre mon erreur.

    Un grand merci à toi grunk

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. verouiller un fichier php avec mot de passe
    Par z_ahlam dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 27/02/2011, 10h58
  2. Dezipper un fichier avec mot de pass
    Par Snoopy77 dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 23/12/2008, 09h14
  3. Idientifier les fichiers avec mot de passe Windows
    Par p_12345 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 11/10/2007, 15h31
  4. Ouvrir via une macro un fichier avec mot de passe.
    Par Drost dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/10/2007, 14h47
  5. acceder a un fichier avec mot de passe
    Par moa378 dans le forum Windows
    Réponses: 16
    Dernier message: 17/05/2005, 12h15

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