Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][HTML]<form> odsyła do strony z której kod PHP jest wykonany, ale HTML nie jest załadowany
kolaborek
post 18.04.2021, 17:46:49
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 12.10.2010

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


Witajcie,

Mam stronę download.php na której jest przycisk (formularz) odsyłający do strony delete.php, która ma za zadanie wykonać 3 rzeczy:
- pobrać plik na komputer (przy pomocy PHPowej funkcji readfile,
- usunąć w/w pobrany plik z serwera (przy pomocy PHPowej funkcji unlink),
- wyświetlić użytkownikowi komunikat o powyższych czynnościach oraz przycisk umożliwiający powrót do głównego menu.

No i teraz kiedy kliknę przycisk na stronie download.php to kod PHP ze strony delete.php się wykona, tj. plik zostanie pobrany na komputer oraz usunięty z serwera.
Ale przeglądarka nadal pozostaje na stronie download.php... kod HTML ze strony delete.php nie ładuje się.

W praktyce wygląda to jak poniżej, czyli po kliknięciu przycisku Pobierz i usuń dokument został pobrany, usunięty z serwera (tego akurat tutaj nie widać), a strona nie została przekierowana do delete.php.


Zauważyłem, że gdy wykomentuję część odpowiedzialną za pobieranie pliku, tj. funkcję readfile z pliku delete.php, to strona poprawnie się załaduje.

Poniżej zawartość obydwu plików.

download.php
  1. <?php
  2. // ODCZYTUJE ZMIENNE PRZEKAZANE PRZEZ METODĘ POST
  3. $fileToDelete = $_POST["fileToDelete2"];
  4.  
  5. $_SESSION["fileToDelete"] = $fileToDelete;
  6.  
  7. // ODCZYTUJĘ ZMIENNE PRZEKAZANE W RAMACH SESJI
  8. $biezacy_zaszyfrowany_ows = $_SESSION["biezacy_zaszyfrowany_ows"];
  9. $ukosnik = $_SESSION["ukosnik"];
  10.  
  11. // ROZBIJAM ŚCIEŻKĘ PLIKU NA POSZCZEGÓLNE PARAMETRY
  12. list ($folder_magazynu, $biezacy_zaszyfrowany_ows, $nazwa_pliku) = explode ("$ukosnik", $fileToDelete);
  13.  
  14. echo "Czy napewno chcesz pobrać dokument <b>\"$nazwa_pliku\"</b>? Pobranie go na komputer spowoduje automatyczne usunięcie go z serwera!.";
  15.  
  16. echo "
  17. <form method='post' action='delete.php?ows=" . $biezacy_zaszyfrowany_ows . "'>
  18. <button>Pobierz i usuń </button>
  19. </form>";
  20. ?>


delete.php
  1. <?php
  2. // ODCZYTUJĘ ZMIENNE PRZEKAZANE W RAMACH SESJI
  3. $biezacy_zaszyfrowany_ows = $_SESSION["biezacy_zaszyfrowany_ows"];
  4. $ukosnik = $_SESSION["ukosnik"];
  5. $fileToDelete = $_SESSION["fileToDelete"];
  6.  
  7. // ROZBIJAM ŚCIEŻKĘ PLIKU NA POSZCZEGÓLNE PARAMETRY
  8. list ($folder_magazynu, $biezacy_zaszyfrowany_ows, $nazwa_pliku) = explode ("$ukosnik", $fileToDelete);
  9.  
  10. if (file_exists($fileToDelete)) {
  11. header('Content-Description: File Transfer');
  12. header('Content-Type: application/octet-stream');
  13. header('Content-Disposition: attachment; filename="'.basename($fileToDelete).'"');
  14. header('Expires: 0');
  15. header('Cache-Control: must-revalidate');
  16. header('Pragma: public');
  17. header('Content-Length: ' . filesize($fileToDelete));
  18. readfile($fileToDelete);
  19. //exit;
  20. }
  21.  
  22. unlink($fileToDelete);
  23. echo "Plik \"$nazwa_pliku\" został usunięty z serwera.";
  24.  
  25. echo "<form><button type='submit' formaction='main.php?ows=" . $biezacy_zaszyfrowany_ows . "' formmethod='post'>Powrót</button></form>";
  26. ?>


Może ktoś będzie miał jakąś wskazówkę?

Pozdrawiam

Ten post edytował kolaborek 18.04.2021, 17:54:31
Go to the top of the page
+Quote Post
trueblue
post 18.04.2021, 18:46:42
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


https://kawalekkodu.pl/rzucam-wszystko-i-uc...-redirect-w-php


--------------------
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 Wersja Lo-Fi Aktualny czas: 18.04.2024 - 08:18