Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wysyłanie pliku z formularza (kursPHP)
Forum PHP.pl > Forum > PHP
jarek0203
Witam. Mam tu kod z kursu php i z jedną rzeczą nie mogę sobie poradzić.

mam tutaj formularz do wysyłania pliku:
  1. <?php
  2.  
  3. require_once("funkcje.php");
  4.  
  5. ?>
  6. <html>
  7. <head>
  8. <title>Wysyłanie hasła</title>
  9. </head>
  10. <body>
  11. <?php
  12.  
  13. if (!isset($_SESSION['zalogowany']))
  14. {
  15. echo 'Jesteś niezalogowany, przejdź na stronę logowania';
  16. echo 'klikając <a href="logowanie.php" >tutaj</a>.';
  17. }
  18. else
  19. {
  20.  
  21.  
  22. ?>
  23. <form enctype="multipart/form-data" action="wyslij.php"
  24. method="post" >
  25. <input type="hidden" name="MAX_FILE_SIZE" value="1024" />
  26. <input type="file" name="reklama" />
  27. <input type="submit" value="wyślij" />
  28. </form>
  29.  
  30.  
  31. <?php
  32. }
  33. ?>
  34. </body>
  35. </html>


oraz skrypt zapisujący wybrany plik na dysku:

  1. <html>
  2. <head>
  3. <title>Wysyłanie hasła</title>
  4. </head>
  5. <body>
  6. <?php
  7.  
  8. if (!isset($_SESSION['zalogowany']))
  9. {
  10. echo 'Jesteś niezalogowany, przejdź na stronę logowania';
  11. echo 'klikając <a href="logowanie.php" >tutaj</a>.';
  12. }
  13. elseif(!isset($_POST['reklama']))
  14. {
  15. echo 'Nie wybrano pliku, proszę spróbować ponownie,';
  16. echo 'klikając <a href="wysylanie.php" >tutaj</a>.';
  17. }
  18. else
  19. {
  20. try
  21. {
  22.  
  23. sprawdz_cookie();
  24. sprawdz_plik();
  25. zapisz_plik();
  26. zapisz_cookie();
  27. }
  28. catch (Exception $e)
  29. {
  30. echo "Wystąpił błąd podczas wysyłania pliku,";
  31. echo "jego komunikat to ".$e->getMessage();
  32. }
  33. }
  34. ?>
  35. </body>
  36. </html>



Można przetestowac...Gdy wybieramy plik i wciskamy wyślij za każdym razem wyświetla komunikat z elseifa:
"Nie wybrano pliku, proszę spróbować ponownie" i nie da rady żeby go przeskoczyć.

Wie ktoś czemu tak się dzieje albo co tu jest źle? Moge jeszcze pokazać reszte kodu ale wydaje mi sie że to wina w tym kodzie.Pozdrawiam
phpion
W tym miejscu:
  1. elseif(!isset($_POST['reklama']))

powinieneś skorzystać z tablicy $_FILES, a nie $_POST. Po wysłaniu formularza z plikiem zobacz jak wygląda ta tablica i jakie dane zawiera:
  1. print_r($_FILES);


PS: Wstawiaj kod między tagi [PHP].
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.