Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Niedziałający skrypt uploadu avatarów
czernin
post
Post #1





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 14.06.2012

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


Witam,

Napisałem skrypt przedstawiony poniżej, lecz nie działa. Mówiąc "nie działa" mam na myśli to, że nie jest wyświetlany komunikat o poprawnie dodanym avatarze i obrazek nie jest wysyłany na serwer. Czy mógłby mi ktoś podpowiedzieć, co robię źle?

  1. <?php
  2.  
  3. if(isset($_FILES['avatar'])) {
  4.  
  5. $user = 'jakis_tam_nieznany_user';
  6. $nazwa_tymaczsowa_avataru = $_FILES['avatar']['tmp_name'];
  7. $nazwa_avataru = $_FILES['avatar']['name'];
  8. $rozmiar_avataru = $_FILES['avatar']['size'];
  9. $rozszerzenie_avataru = substr($nazwa_avataru, -3);
  10. $katalog_do_zapisu_avataru = 'images/avatary/'.$user.'.gif';
  11.  
  12. if($rozszerzenie_avataru === 'gif') {
  13.  
  14. if(is_uploaded_file($nazwa_tymaczsowa_avataru)) {
  15.  
  16. move_uploaded_file($nazwa_tymaczsowa_avataru, $katalog_do_zapisu_avataru);
  17.  
  18. }
  19.  
  20. } else {
  21.  
  22. echo 'Avatar musi być obrazkiem o rozszerzeniu .gif';
  23.  
  24. }
  25.  
  26. }
  27.  
  28. echo '<b>Zmień avatar:</b><br />
  29. <form method="post" action="avki.html">
  30. <input type="file" name="avatar" /><br /><br />
  31. <input type="submit" value="Zmień" />
  32. </form>';
  33.  
  34. ?>


Ten post edytował czernin 30.10.2012, 16:40:10
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


W formularzu brakuje enctype="multipart/form-data".

  1. <form method="post" action="avki.html" enctype="multipart/form-data">


I nie tak się sprawdza rozszerzenie pliku.

  1. $rozszerzenie_avataru = substr($nazwa_avataru, -3);


Rozbij nazwę po kropce:

  1. $tmp = explode('.', $nazwa_avataru);
  2. $extension = $tmp[sizeof($tmp)-1];


co i tak nie daje pewności, że wrzucony plik o rozszerzeniu .gif jest rzeczywiście gifem.

Jak ma się wyświetlać jakiś komunikat, jak żadnego nie ma.

  1. if(move_uploaded_file($nazwa_tymaczsowa_avataru, $katalog_do_zapisu_avataru)) echo 'dodano plik';
Go to the top of the page
+Quote Post
czernin
post
Post #3





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 14.06.2012

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


Poprawiłem skrypt według Twoich wskazówek. Gdy uploadowany obrazek ma rozszerzenie .gif wszystko jest ok. Natomiast gdy rozszerzenie jest inne nie wyświetla się komunikat z błędem. Wie ktoś może, dlaczego?

  1. <?php
  2.  
  3. if(isset($_FILES['avatar'])) {
  4.  
  5. $user = 'jakis_tam_nieznany_user';
  6. $nazwa_tymaczsowa_avataru = $_FILES['avatar']['tmp_name'];
  7. $nazwa_avataru = $_FILES['avatar']['name'];
  8. $rozmiar_avataru = $_FILES['avatar']['size'];
  9.  
  10. $tmp = explode('.', $nazwa_avataru);
  11. $rozszerzenie_avataru = $tmp[sizeof($tmp)-1];
  12.  
  13. $katalog_do_zapisu_avataru = 'images/avatary/'.$user.'.gif';
  14.  
  15. if($rozszerzenie_avataru === 'gif') {
  16.  
  17. if(is_uploaded_file($nazwa_tymaczsowa_avataru)) {
  18.  
  19. move_uploaded_file($nazwa_tymaczsowa_avataru, $katalog_do_zapisu_avataru);
  20. echo 'Avatar został zmieniony.';
  21.  
  22. } else {
  23.  
  24. echo 'Avatar musi być obrazkiem o rozszerzeniu .gif';
  25.  
  26. }
  27.  
  28. }
  29.  
  30. }
  31.  
  32. echo '<b>Zmień avatar:</b><br />
  33. <form method="post" action="avki.html" enctype="multipart/form-data">
  34. <input type="file" name="avatar" /><br /><br />
  35. <input type="submit" value="Zmień" />
  36. </form>';
  37.  
  38. ?>
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Natomiast gdy rozszerzenie jest inne nie wyświetla się komunikat z błędem. Wie ktoś może, dlaczego?
Bo przecież jak coś nie jest GIFem to ty nie wyświetlasz żadnego komunikatu błędu....

Przecież o to:
echo 'Avatar musi być obrazkiem o rozszerzeniu .gif';
masz w IF, który jest prawdziwy gdy coś jest gifem. (IMG:style_emoticons/default/smile.gif) Ciut logiki i mniej ślepoty się kłania (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 27.09.2025 - 05:48