Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wypakowanie archiwum z hasłem.
Gruchol
post
Post #1





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

Ostrzeżenie: (0%)
-----


Witam,
Czy jest możliwość aby PHP przy rozpakowaniu plików z archiwum .zip podawał hasło ?
Chodzi o to czy jak bym zabezpieczył archiwum hasłem to czy php jest w stanie rozpakować plik ?

Aktualnie mam taki kod :

  1. $nazwa = $_POST["user_name"];
  2. mkdir("files/$nazwa", 0777);
  3. $zip = new ZipArchive();
  4. if ($zip->open("/usr/share/nginx/www/pliki.zip") !== TRUE) {die ('Błąd rozpakowywania archiwum.');}
  5. $zip->extractTo("/usr/share/nginx/www/files/$nazwa");
  6. $zip->close();


I chciałbym aby przy rozpakowaniu archiwum PHP podał hasło które będzie np. z zmiennej.
Z góry dziękuję i pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
aras785
post
Post #2





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


http://php.net/manual/en/ziparchive.setpassword.php
Go to the top of the page
+Quote Post
Gruchol
post
Post #3





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

Ostrzeżenie: (0%)
-----


Zrobiłem to tak :
  1. <?php
  2. $zip = new ZipArchive();
  3. $zip_status = $zip->open("test.zip");
  4.  
  5. if ($zip_status === true)
  6. {
  7. if ($zip->setPassword("testpassword"))
  8. {
  9.  
  10. if (!$zip->extractTo(__DIR__))
  11. echo "Extraction failed (wrong password?)";
  12. }
  13.  
  14. $zip->close();
  15. }
  16. else
  17. {
  18. die("Failed opening archive: ". @$zip->getStatusString() . " (code: ". $zip_status .")");
  19. }
  20. ?>

Jednak nic się nie dzieje ani nie wyświetla się żaden błąd.
Gdzie popełniłem błąd ?

Ten post edytował Gruchol 4.04.2015, 16:10:47
Go to the top of the page
+Quote Post
aras785
post
Post #4





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


To oznacza, że zip został wypakowany (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Gruchol
post
Post #5





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

Ostrzeżenie: (0%)
-----


No właśnie nie do końca, dałem na początku echo "test"; jednak ono też się nie wyświetliło, zrobiłem złe hasło - 0 reakcji.
Go to the top of the page
+Quote Post
rad11
post
Post #6





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Usun @ i sprobuj jeszcze raz.
Go to the top of the page
+Quote Post
Gruchol
post
Post #7





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

Ostrzeżenie: (0%)
-----


Teraz się wyświetliło.
Tylko teraz gdzie wstawić dalszy kod np. przeniesienia plików ?

Zrobiłem to tak :

<?php
echo "test12";
$zip = new ZipArchive();
$zip_status = $zip->open("test.zip");

if ($zip_status === true)
{
if ($zip->setPassword("test"))
{
echo "test12345";
if (!$zip->extractTo(__DIR__))
echo "Extraction failed (wrong password?)";
}

$zip->close();
}
else
{
die("Failed opening archive: ". $zip->getStatusString() . " (code: ". $zip_status .")");
}
?>
Jednak echo "test12345"; nie wyświetla się i nie rozpakowywuje archiwum.
Go to the top of the page
+Quote Post
rad11
post
Post #8





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Jaka masz wersje PHP? Spojz w logi. Napewno sciezka do pliku sie zgadza?U mnie dziala.

Zrob tak moze jeszcze bez zadnego sprawdzania:

  1. $zip = new ZipArchive();
  2. $zip_status = $zip->open("test.zip");
  3. $zip->setPassword("twojehaslo");
  4. $zip->extractTo(__DIR__');


Ten post edytował rad11 4.04.2015, 17:21:05
Go to the top of the page
+Quote Post
Gruchol
post
Post #9





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

Ostrzeżenie: (0%)
-----


Ścieżki mam ustawione tak :
<?php
$zip = new ZipArchive();
$zip_status = $zip->open("/usr/share/nginx/www/test/test.zip");
$zip->setPassword("gruszek");
$zip->extractTo("/usr/share/nginx/www/test");

?>
Jednak nadal nic się nie dzieje :/

Wrzuciłem to samo, bez hasła i się rozpakowało.
Tylko dla czego z tym hasłem nie chce działać :/
Ma ktoś jeszcze jakieś pomysły ?
Go to the top of the page
+Quote Post
rad11
post
Post #10





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


A sprawdzales w logach ?
Go to the top of the page
+Quote Post
Gruchol
post
Post #11





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

Ostrzeżenie: (0%)
-----


2015/04/04 13:48:57 [error] 18734#0: *160 FastCGI sent in stderr: "PHP message: PHP Fatal error: Call to undefined method ZipArchive::setPassword() in /usr/share/nginx/www/test/index.php on line 4" while reading response header from upstream, client: xxxx, server: localhost, request: "GET /test/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "1xxxx"
Go to the top of the page
+Quote Post
rad11
post
Post #12





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


No to masz odpowiedz dlaczego nie dziala otwieranie pliku z haslem. Jaka masz wersje PECL zip i PHP ? Mozesz jeszcze zobaczyc czy uda sie poprzez:

  1. echo system('unzip -P password file.zip file.txt');
  2. echo shell_exec('unzip -P password file.zip');


Ten post edytował rad11 4.04.2015, 19:30:38
Go to the top of the page
+Quote Post
Gruchol
post
Post #13





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

Ostrzeżenie: (0%)
-----


Znalazłem coś takiego :

http://screenshooter.net/101976163/nneuhbd

To o to chodzi ?
Mam php-fpm którego zainstalowałem z pakietu apt-get install php5-fpm.
Czy mogę go jakoś zaktualizować ?
Go to the top of the page
+Quote Post
rad11
post
Post #14





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Tak o to chodzi ogolnie do uzycia setPassword potrzeba wersji PHP 5.6.xx i pecl zip > 1.12 musisz sobie zaktualizowac to co jest potrzebne

Ten post edytował rad11 4.04.2015, 19:36:13
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 22:06