Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] - avatary
Forum PHP.pl > Forum > Przedszkole
The Night Shadow
Jak powinien wyglądać skrypt, w którym użykownik może wybrać własny avatar, który to (po sprawdzeniu czy ma wielkośc np. max 100KB) przesyłany byłby na serwer (tu chyba trzeba nadać uprawnienia chmod 777?) pod odpowiednią nazwą: "$id_uzytkownika"_avatar oraz, by ta nazwa była dodawana odpowiednio do tabeli logowanie (gdzie znajdują się dane użytkowników)?
mike
Chcesz żeby Ci napisać gotowca questionmark.gifexclamation.gif

Mogę Ci powiedzieć co masz zrobić:
1. Tworzysz formularz. Już tu możesz zdefiniować rozmiar dodając odpowiednie pole do formularza.
2. Po przesłaniu sprawdzasz format (czy jest to obrazek) oraz rozmiar (szerokość i wysokość). Załatwisz to dzięki getimagesize().
3. Jeśli wszysko jest OK. To przenosisz plik z folderu tymczasowego do docelowej lokalizacji. Masz do tego move_uploaded_file(). Prawa nie muszą być 777 bo niby poc co dawać możliwość kasowania tego pliku. Dajesz zwykłe 644.
4. Rozpoczynasz transakcję do bazy danych. Dodajesz nazwę pliku do danych usera. Tutaj masz mysql_query() i resztę. Jak się udało to spoko, jak nie to kasujesz plik (bo po co go trzyamać?).
The Night Shadow
:- ) To się nazywa profesonalna pomoc. Dzięki Ci wielkie... i nie chodziło mi o gotowca, a schemat powinności, co też napisałeś :- )

A co do 777... w przypadku nadpisywania avataru (w przypadku jego zmiany) będzie trzeba poprzedni plik usunąć, więc chyba są potrzebne.
mike
Cytat(The Night Shadow @ 2006-03-03 13:00:26)
A co do 777... w przypadku nadpisywania avataru (w przypadku jego zmiany) będzie trzeba poprzedni plik usunąć, więc chyba są potrzebne.

Hmmm, no w sumie tak.
Przy okazaji kasowania będziesz potrezbował praw umożliwiających tą operację.

Z drugiej strony, nie musisz tych plików kasować tylko dodawać nowe i zmieniać wpis w bazie. Ale może Ci się miejsce na serwerze skońćzyć smile.gif więc nie jest to takie dobre.
The Night Shadow
Ok jescze raz... przeglądałem manual i poaza tymi co jest po angielsku, aco niewiele mi mówi nie znalazłem tego, co miaoby mi pomóc, więc teraz pytam o szersze rozpisania punktów, które mile_mech raczył podać :- )

Albo jeszcze inaczej... na stronie www.ogien.webd.pl/rejestracja.php znajduje się formularz. Stworzyłem katalog grafika/avatary gdzie mają być one umieszczane. nadałem prawa chmod 777. W ten formularz chciałbym wkomponować odpowiednią linię z możliwością upload'u abvatara o wielkości powiedzmy do 100KB wielkości 100x100px. W momencie klikniecia w np. wyślij sprawdzałby wielość, czy jest to w ogóle plik graficzny. Jesli wszystko byłoby poprawnie dodawał do tego katalogu ponownie wyświetlając formularz po to by wypełnić pozostałe pola (wyświetlałby go razem z widcoznym już avatarem).
bolek117
Nie lubie dostawać gotowców, ani tym bardziej ich podawać, ale z uwagi na to, że taki skrypt musi być bardzo bezpieczny (w końcu to wgrywanie pliku od usera [hackera] na serwer...) dam ci pewną pomoc:

  1. <?php
  2. //Sprawdzamy czy plik został wysłany
  3. if(!is_uploaded_file($_FILES[plik][tmp_name])){
  4. echo "Musisz wybrać jakiś plik Cwaniaczku!
  5. ";
  6. //Sprawdzamy czy nie ma błędów
  7. if($_FILES[plik][error] != 0){
  8. echo "Wystąpił błąd podczas przesyłania pliku!
  9. Sprawdź czy plik posiada odpowiednią wagę i spróbuj ponownie!
  10. ";
  11. //Sprawdzamy MIME TYPE pliku
  12. if($_FILES[plik][type] == "image/pjpeg" ||
  13. $_FILES[plik][type] == "image/png" ||
  14. $_FILES[plik][type] == "image/gif"){
  15. //Dotarliśmy tutaj to wszystko jest OK = UPLOAD
  16. if(move_uploaded_file($_FILES[plik][tmp_name], "./upload/".$_FILES[plik][name])){
  17. echo "Plik wrzucono pomyślnie!
  18. ";
  19. }else{
  20. echo "Wystąpił nieoczekiwany błąd podczas kopiowania!
  21. ";
  22. }
  23. }else{
  24. echo "Możesz uploadować tylko obrazki!
  25. ";
  26. }
  27. ?>


Może być?? Jak tok to pomogłem winksmiley.jpg
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.