Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Zmniejszanie rozmiaru zdjęcia podczas uploadu
adiseq
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 20.11.2011

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


Witam serdecznie,

Staram się zrobić skrypt w którym użytkownik może zmieniać dane wizytówki na stronie. Bardzo prosta strona, kilka danych jak nazwa firmy email i nr tel oraz logo firmy. Udało mi się zrobić że po zalogowaniu użytkownik widzi zapisane dane w bazie i ma możliwość je edytować. Zdjęcie, wgrywa do folderu UPLOADS a ścieżkę do zdjęcia dopisuje do danego użytkownika w bazie. Wszystko ok. Problem polega na tym, że chciałbym ustawić aby zdjęcie które wgrywają użytkownicy zmieniało się do rozmiaru np 640px x 400 px. Ma to być tylko małe logo widoczne w wizytówce, a nie wielki obraz, który będzie mi zaśmiecał serwer.

Poniżej kod formularza:
  1. <?php if ($_SESSION['auth'] == TRUE)
  2. {
  3. echo 'Zalogowany jest: '. $_SESSION['user'];
  4. require_once('db.php');
  5. $id_user=$_SESSION['user'];
  6. $sql=mysql_query("select * from user where login='$id_user'");
  7. $row = mysql_fetch_array($sql);
  8. echo '<form enctype="multipart/form-data" method="POST" action="edytuj.php">';
  9. echo '<b>Nazwa firmy:</b><br /> ';
  10. echo '<input type="text" size=30 name="nazwa" disabled value="'.$row['nazwa'].'"><br />';
  11. echo '<b>NIP:</b><br /> ';
  12. echo '<input type="text" size=30 name="nip" disabled value="'.$row['nip'].'"><br />';
  13. echo '<b>Kod pocztowy:</b><br /> ';
  14. echo '<input type="text" size=30 name="kodp" value="'.$row['kodp'].'"><br />';
  15. echo '<b>Miejscowość:</b><br /> ';
  16. echo '<input type="text" size=30 name="miejscowosc" value="'.$row['miejscowosc'].'"><br />';
  17. echo '<b>Adres:</b><br /> ';
  18. echo '<input type="text" size=30 name="ulica" value="'.$row['ulica'].'"><br />';
  19. echo '<b>Telefon:</b><br /> ';
  20. echo '<input type="text" size=30 name="telefon" value="'.$row['telefon'].'"><br />';
  21. echo '<b>E-mail:</b><br /> ';
  22. echo '<input type="text" size=30 name="email" value="'.$row['email'].'"><br />';
  23. echo '<b>Strona www:</b><br /> ';
  24. echo '<input type="text" size=30 name="strona" value="'.$row['strona'].'"><br />';
  25. echo '<b>Opis:</b><br /> ';
  26. echo '<input type="text" size=30 name="opis" value="'.$row['opis'].'"><br />';
  27. echo '<b>Logo:</b><br /> ';
  28. echo '<input type="file" name="plik" id="plik"><br />';
  29. echo '<img src="'. $row['logo'] . '" /><br />';
  30.  
  31. echo '<input type="submit" value="Zmień" /> ';
  32. echo '</form>';
  33. echo ''.$row['nazwa'].'<br />';
  34. echo '<a href="index.php?logout">Wyloguj się</a>';
  35. }


a teraz kod z edytuj.php

  1. <?php if ($_SESSION['auth'] == TRUE) {
  2.  
  3. $id_user=$_SESSION['user'];
  4. // odbieramy dane z formularza
  5. $kodp = $_POST['kodp'];
  6. $miejscowosc = $_POST['miejscowosc'];
  7. $ulica = $_POST['ulica'];
  8. $telefon = $_POST['telefon'];
  9. $email = $_POST['email'];
  10. $strona = $_POST['strona'];
  11. $opis = $_POST['opis'];
  12.  
  13.  
  14. $connection = @mysql_connect($dbhost, $dblogin, $dbpass)
  15. or die('Brak połączenia z serwerem MySQL');
  16. $db = @mysql_select_db('adiseq_hf', $connection)
  17. or die('Nie mogę połączyć się z bazą danych');
  18.  
  19.  
  20. $plik_tmp = $_FILES['plik']['tmp_name'];
  21. $plik_nazwa = $_FILES['plik']['name'];
  22. $plik_rozmiar = $_FILES['plik']['size'];
  23.  
  24.  
  25. if(is_uploaded_file($plik_tmp)) {
  26. move_uploaded_file($plik_tmp, "uploads/$id_user.$plik_nazwa");
  27. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  28. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
  29. $ins1 = @mysql_query("UPDATE user SET logo='http://domena.pl/wizytowka/uploads/$id_user.$plik_nazwa' WHERE login='$id_user'");
  30. }
  31.  
  32. $ins = @mysql_query("UPDATE user SET kodp='$kodp', miejscowosc='$miejscowosc', ulica='$ulica', telefon='$telefon' WHERE login='$id_user'");
  33.  
  34. if($ins)
  35. echo 'Dane zostały zmienione poprawnie <meta http-equiv="refresh" content="1; URL=hideus.php">';
  36.  
  37. else echo "Błąd nie udało się zmienić danych";
  38.  
  39. mysql_close($connection);
  40. }
  41.  
  42. elseif ($_SESSION['auth'] == TRUE) {
  43.  
  44. echo 'Treść dostępna tylko dla administratora<br />';
  45. echo '<a href="index.php?logout">Wyloguj się</a>';
  46. }
  47.  
  48. else {
  49.  
  50.  
  51. echo '<meta http-equiv="refresh" content="1; URL=index.php">';
  52. echo '<p style="padding-top:10px;color:white";><strong>Próba nieautoryzowanego dostępu...</strong><br />trwa przenoszenie do formularza logowania</p>';
  53. }
  54.  
  55. ?>

Wiem, że w kodzie jest duży bałagan ale jestem początkującym i dużo rzeczy robiłem metodą prób i błędów także proszę o wyrozumiałość (IMG:style_emoticons/default/wink.gif) Wiem, też że funkcja mysql_query jest już na wymarciu ale jak na razie mi wystarczy (IMG:style_emoticons/default/smile.gif)

Jak proponujecie rozwiązać sprawę z rozmiarem zdjęcia? Czy da się przeskalować zdjęcie do maksymalnego rozmiaru 640x400?

Pozdrawiam,
Adrian
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
adiseq
post
Post #2





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 20.11.2011

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


Zdaje sobie sprawę z tego że kod jest przestarzały ponieważ opierałem go o różne poradniki (niektóre nawet z 2007 roku). Chodzi mi o bardzo prostą stronę ponieważ chce zobaczyć czy pomysł "zaskoczy" jak się uda to na pewno powierzę napisanie strony odpowiedniej osobie ale na razie nie chcę wydawać pieniędzy na coś co może nigdy nie powstać.
Dodałem wywołanie po move_uploaded_file niestety nic to nie dało.
  1. if(is_uploaded_file($plik_tmp)) {
  2. move_uploaded_file($plik_tmp, "uploads/$id_user.$plik_nazwa");
  3. $img = resize_image("uploads/$id_user.$plik_nazwa", 640, 400);

Mógłbyś podpowiedzieć co źle zrobiłem?

Pozdrawiam,
Adrian
Go to the top of the page
+Quote Post

Posty w temacie


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: 18.10.2025 - 01:21