Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z obrazkiem ;)
Forum PHP.pl > Forum > Przedszkole
snipe
Mam plik user_module.php:

  1. <?php
  2. global $katalog_fotki;
  3. $katalog_fotki = 'fotki/';
  4.  
  5. switch($_GET['action'])
  6. {
  7. case 'edit_profile':
  8.     if(isset($_SESSION['user']))
  9.     {
  10.         if(isset($_POST['password']) && isset($_POST['password_repeat']))
  11.         {
  12.             if(!empty($_POST['password']) && !empty($_POST['password_repeat']))
  13.             {
  14.                 if($_POST['password'] == $_POST['password_repeat'])
  15.                 {
  16.                     change_password($_POST['password']);
  17.                 } else
  18.                 {
  19.                     echo '<b>Podano dwa rozne hasla</b><p>';
  20.                 }
  21.             } else
  22.             {
  23.                 echo '<b>Jedno z pol z haslem nie zostalo wypelnione!!</b><p>';
  24.             }
  25.         }
  26.         if(isset($_POST['user_email']) || isset($_POST['www']))
  27.         {
  28.             update_profil($_POST['user_email'], $_POST['www']);
  29.         }
  30.         
  31.         $_GET['avatar'] = ( empty( $_GET['avatar'] ) ) ? null : $_GET['avatar'];
  32.         switch($_GET['avatar'])
  33.         {
  34.         case 'add':
  35.             add_avatar();
  36.         break;
  37.         case 'delete':
  38.             delete_avatar();
  39.         break;
  40.         }
  41.         edytuj_profil_form($_SESSION['user']);
  42.         edytuj_haslo_form();
  43.         newsletter_form();
  44.     } else
  45.     {
  46.         echo '<b>Nie masz uprawnien!!</b>';
  47.     }
  48. break;
  49. }
  50. ?>



oraz funkcje uploadujaca pliki:

  1. <?php
  2. function add_avatar()
  3.     {
  4.         global $katalog_fotki;
  5.         if(!file_exists($katalog_fotki . $_FILES['obraz']['name']))
  6.         {
  7.             $ext = array('jpg', 'jpeg', 'png', 'bmp'); // dozwolone rozszerzenia
  8.             foreach($_FILES as $nazwa => $dane)
  9.             {
  10.                 $rozsz = explode('.', $dane['name']);
  11.                 if(in_array($rozsz[count($rozsz) - 1], $ext))
  12.                 {
  13.                     // plik akceptowalny, robisz z nim co chcesz
  14.                     move_uploaded_file($_FILES['obraz']['tmp_name'],$katalog_fotki . $_FILES['obraz']['name']);
  15.                 }
  16.             }
  17.             if (!is_uploaded_file($_FILES['obraz']['tmp_name']))
  18.             {
  19.                 zmien_wielkosc_obrazka($_FILES['obraz']['name']);
  20.                 unlink($katalog_fotki . $_FILES['obraz']['name']);
  21.                 echo ('Wgrano plik');
  22.                 mysql_query("UPDATE `users` set avatar='$_SESSION[id_user].jpg' WHERE id_user='$_SESSION[id_user]'");
  23.                 header("Location: index.php?module=user&action=edit_profile");
  24.             } else
  25.             {
  26.                 echo 'Nie wgrano pliku';
  27.             }
  28.         } else
  29.         {
  30.             echo 'Plik juz istnieje!';
  31.         }
  32.     }
  33. ?>


i funkcje zmniejszajaca szerokosc i wyskokosc wgranego pliku:

  1. <?php
  2. function zmien_wielkosc_obrazka($file)
  3. {
  4. global $katalog_fotki;
  5. $obrazek = $katalog_fotki . $file;
  6. $max_szerokosc = 60;
  7. $max_wysokosc = 40;
  8.  
  9. $rozmiar = GetImageSize($obrazek);
  10. $szerokosc = $rozmiar[0];
  11. $wysokosc = $rozmiar[1];
  12.  
  13. $wspolczynnik_x = $max_szerokosc / $szerokosc;
  14. $wspolczynnik_y = $max_wysokosc / $wysokosc;
  15.  
  16. if ( ($szerokosc <= $max_szerokosc) && ($wysokosc <= $max_wysokosc) )
  17. {
  18. $nowa_szerokosc = $szerokosc;
  19. $nowa_wysokosc = $wysokosc;
  20. } else
  21. if (($wspolczynnik_x * $wysokosc) < $max_wysokosc)
  22. {
  23. $nowa_wysokosc = ceil($wspolczynnik_x * $wysokosc);
  24. $nowa_szerokosc = $max_szerokosc;
  25. }else
  26. {
  27. $nowa_szerokosc = ceil($wspolczynnik_y * $szerokosc);
  28. $nowa_wysokosc = $max_wysokosc;
  29. }
  30.  
  31. $zrd = ImageCreateFromJpeg($obrazek);
  32. $prz = ImageCreate($nowa_szerokosc,$nowa_wysokosc);
  33. ImageCopyResized($prz, $zrd, 0, 0, 0, 0,
  34. $nowa_szerokosc,$nowa_wysokosc,$szerokosc,$wysokosc);
  35. //header('Content-type: Image/jpeg');
  36. ImageJpeg($prz, $katalog_fotki . $_SESSION['id_user'].'.jpg', -1);
  37. ImageDestroy($zrd);
  38. ImageDestroy($prz);
  39. }
  40. ?>

I w pewnym miejscu na stronie powiedzmy mam to:

  1. <?php
  2. echo '<b>Aktualnie ustawiony avatar:</b><br /><a href="?module=user&action=edit_profile&avatar=delete"><br /><img src="./'.$katalog_fotki . $_SESSION['id_user'].'.jpg" border="0" alt="Usuń" align="middle"></a> [ Kliknij w obrazek aby usunac ]<p>';
  3. ?>

I mam problem, dodam sobie avatara, wszystko sie ok zaladuje, ale kiedy go usune i sproboje dodac inny-nowy avatar, to nawet jesli wgra mi ten nowy plik bez zadnych zastrzezen to i tak nadal bedzie wyswietlac mi plik ktory w rzeczywsitosci juz podmienilem. Nie wiem czy on jest trzymany w cache albo cos?? Poniewaz gdy odswieze strone dopiero wtedy wyswietla mi dobry avatar z tym ze przez header nie daje rady, musze normalnie kliknac w odsiwezanie strony w przegladarce angrysmiley.gif

poooomocy!!!
Lars
tam gdzie zapisujesz link do avatara zmień nazwę pliku na nową
snipe
Cytat(Lars @ 2005-10-25 14:11:57)
tam gdzie zapisujesz link do avatara zmień nazwę pliku na nową

ale po co??

jesli zaloguje sie uzytkownik o danym id to obrazek ma miec jego id w nazwie i tak w tym przypadku jest, zsotaje zapisany plik np. 321.jpg gdzie 321 jest id uzytkownika i takie plik zostaje przypisany, wiec niezaleznie od tego czy wgram ten czy inny plik nazwa pliku dla danego uzytkownika zawsze bedzie taka sama

Edit:
znalazlem rozwiazanie:
  1. <?php
  2. $var = md5(time());
  3. $picture_name = $katalog_fotki.$wynik['avatar']."?var=".$var;
  4. echo '<img src="'.$picture_name.'" border="0">
  5. ?>
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.