Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Unzip file protetto da password

    Buonasera,
    con uno script PHP sto provando ad aprire un file zip protetto da password.
    Sono su server Linux ed ho già provato con queste funzioni e con diverse query (non prendete il codice alla lettera, ho scritto tutto in fila soltanto per essere breve):
    Codice PHP:
    $query "`which unzip` $zip_file"# funziona se il file non è protetto da password
    #oppure
    $query "`which unzip` -P $zipPassword $zip_file"# non funziona in nessun caso
    # oppure 
    $query "`which unzip` $zip_file -P $zipPassword"# non restituisce errori, ma non funziona

    /* con le seguenti funzioni e le precedenti query (una combinazione
    alla volta) ottengo sempre i medesimi risultati */
    shell_exec($query);
    #oppure
    exec($query);
    #oppure
    system($query); 
    Ah, nelle query ho provato anche senza "BACKTICKS" e/o senza "which"... nessun cambiamento...

    Ho a disposizione le estensioni di PHP php_zip e zlib quindi ho provato con la classe ZipArchive:
    Codice PHP:
    $zip_file "mioFile.zip";
    $src_dir "miaDirectorySorgente";
    $extract_dir "miaDirectoryDiDestinazione";

    zip = new ZipArchive();

    $res $zip->open($src_dir.'/'.$zip_file);
    if (
    $res === TRUE) {
        
    $zip->extractTo($extract_dir '/');
        
    $zip->close();
        
    $error 'ok';   
    } else {
        
    $error 'failed';
    }
    echo 
    $error
    Funziona perfettamente nel caso di archivio non protetto. Se lo zip è protetto da password, invece, mi estrae i file ma in realtà sono tutti vuoti. Purtroppo non ho idea di come si imposti la password in questa classe...
    Mi sono documentato (ZipArchive:pen e ZipArchive::extractTo) ma non ho trovato niente di interessante.

    Qualcuno sa darmi qualche dritta?
    Grazie!
    Michele
    King Of The Kill

  2. #2
    Scusate, ho trovato un refuso nel post precedente.
    Facendo copia e incolla dal mio codice a questo forum mi sono mangiato un dollaro "$" nel punto in cui dichiaro la variabile $zip.

    Il mio problema, comunque, persiste
    Michele
    King Of The Kill

  3. #3
    Ehm... ho trovato la soluzione da solo, anche se non riesco a capirla.

    Prima usavo una roba simile (e non funzionava):
    Codice PHP:
    $password 'miapassword';
    $zip_file 'mioFile.zip';
    $query "`which unzip` -P $password $zip_file";
    #oppure
    $query "`which unzip` -P ".$password." ".$zip_file;
    shell_exec($query); 
    Inserendo direttamente la password in chiaro nella query, il tutto funziona:
    Codice PHP:
    $zip_file 'mioFile.zip';
    $query "`which unzip` -P miapassword $zip_file";
    shell_exec($query); 
    Secondo me è assurdo (anche perché a fianco della password c'è la variabile col nome del file zip non espressa direttamente) ma se funziona, tanto meglio!
    Michele
    King Of The Kill

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.