Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]Upload zdjęć a zapis nazwy do bazy
krispak
post 20.10.2008, 11:27:43
Post #1





Grupa: Zarejestrowani
Postów: 250
Pomógł: 55
Dołączył: 27.08.2008

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


Witam

Mam upload zdjec, ktory bez problemu dodaje zdjecie na serwer we wskazana lokalizacje ale problem polega na tym ze gdy zapisuje nazwe do bazy to nie zapisuje powiedzmy zdjecie.jpg tylko powiedzmy wrzuca cos takiego tmp/phpT6wt
Zapisuje tak jakby nazwe tymczasowa, co moze byc tego powodem?

Za wszelka pomoc dziekuje


--------------------
* * * * * * * * * * * * * * * * * * * * * * * * *
PHP, Laravel, Docker, Docker Compose, Laradock, Redis, JS, React, Vue, CSS, SCSS, Gulp, GIT ... itd..
Go to the top of the page
+Quote Post
mike
post 20.10.2008, 11:28:47
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(krispak @ 20.10.2008, 12:27:43 ) *
Zapisuje tak jakby nazwe tymczasowa, co moze byc tego powodem?
Błąd w kodzie, który napisałeś.
Go to the top of the page
+Quote Post
krispak
post 20.10.2008, 11:47:13
Post #3





Grupa: Zarejestrowani
Postów: 250
Pomógł: 55
Dołączył: 27.08.2008

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


tak wygląda skrypt

  1. <?php
  2.  if (isset($_POST['avatar'])) {
  3.  $avatar = $_POST['avatar'];
  4.  $sql = "UPDATE admin SET
  5.      avatar='$plik'
  6.         WHERE id='$id'";
  7.  if (mysql_query($sql)) {
  8.    echo '<p>Dane zostały zaktualizowany.</p>';
  9.  } else {
  10.    exit('<p>Problem podczas aktualizowania danych: ' .
  11.        mysql_error() . '</p>');
  12.  }
  13. }
  14. $plik_nazwa = $_FILES['plik']['name'];
  15. $plik_tmp = $_FILES['plik']['tmp_name'];
  16. $plik_rozmiar = $_FILES['plik']['size'];
  17.  
  18. if(is_uploaded_file($plik_tmp)) {
  19.     move_uploaded_file($plik_tmp, "images/avatar/$plik_nazwa");
  20.    echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  21.    <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
  22. }
  23. ?>
  24. <form action="?eprofil" enctype="multipart/form-data" method="post">
  25. <input type="file" name="plik" />
  26. <input type="hidden" name="MAX_FILE_SIZE" value="50000" />
  27. <input type="submit" value="AKTUALIZUJ" />


--------------------
* * * * * * * * * * * * * * * * * * * * * * * * *
PHP, Laravel, Docker, Docker Compose, Laradock, Redis, JS, React, Vue, CSS, SCSS, Gulp, GIT ... itd..
Go to the top of the page
+Quote Post
guilty82
post 20.10.2008, 11:50:19
Post #4





Grupa: Zarejestrowani
Postów: 176
Pomógł: 31
Dołączył: 26.03.2007

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


a skad bierzesz zmienna $plik?
Go to the top of the page
+Quote Post
mike
post 20.10.2008, 11:51:04
Post #5





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


W budowanym zapytaniu masz zmienne $plik i $id. Skąd one się biorą?
Bo rozumiem, że to w bazie zapisuje Ci złą nazwę pliku?
Go to the top of the page
+Quote Post
krispak
post 20.10.2008, 11:57:42
Post #6





Grupa: Zarejestrowani
Postów: 250
Pomógł: 55
Dołączył: 27.08.2008

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


id tyczy sie konkretnej osoby ale wycialem skrypt wyswietlajacy bo jest to plik edycji stad id

a nazwe zle zapisuje w bazie bo jest typu tmp/php64rer


--------------------
* * * * * * * * * * * * * * * * * * * * * * * * *
PHP, Laravel, Docker, Docker Compose, Laradock, Redis, JS, React, Vue, CSS, SCSS, Gulp, GIT ... itd..
Go to the top of the page
+Quote Post
mike
post 20.10.2008, 12:03:07
Post #7





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


W bazie zapisujesz to co jest w zmiennej $plik. Skoro wartość jest zła to zawartość tej zmiennej jest zła.
Skąd bierzesz wartość zmiennej $plik? Bo to tu leży problem.
Go to the top of the page
+Quote Post
guilty82
post 20.10.2008, 12:03:17
Post #8





Grupa: Zarejestrowani
Postów: 176
Pomógł: 31
Dołączył: 26.03.2007

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


No to skoro Ci zle zapisuje a nie chcesz pokazac skad biora sie te zmienne w zapytaniu to ciezko bedzie pomoc smile.gif
Go to the top of the page
+Quote Post
krispak
post 20.10.2008, 12:29:54
Post #9





Grupa: Zarejestrowani
Postów: 250
Pomógł: 55
Dołączył: 27.08.2008

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


zmienilem

avatar='$plik' na avatar='$plik_nazwa'

oraz dodalem

<input type="hidden" name="plik_nazwa" />

aby pobierac zmienna z

$plik_nazwa = $_FILES['plik']['name'];

i teraz nic nie dodaje do bazy a plik do katalogu jest ladowany


--------------------
* * * * * * * * * * * * * * * * * * * * * * * * *
PHP, Laravel, Docker, Docker Compose, Laradock, Redis, JS, React, Vue, CSS, SCSS, Gulp, GIT ... itd..
Go to the top of the page
+Quote Post
guilty82
post 20.10.2008, 12:34:13
Post #10





Grupa: Zarejestrowani
Postów: 176
Pomógł: 31
Dołączył: 26.03.2007

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


A po co tak?

zmien kolejnosc i nie musisz nic przesylac w hidden

  1. <?php
  2. if (isset($_POST['avatar'])) {
  3.  
  4. $plik_nazwa = $_FILES['plik']['name'];
  5. $plik_tmp = $_FILES['plik']['tmp_name'];
  6. $plik_rozmiar = $_FILES['plik']['size'];
  7.  
  8. $sql = "UPDATE admin SET
  9.     avatar='$plik_nazwa'
  10.        WHERE id='$id'";
  11. ?>
Go to the top of the page
+Quote Post
krispak
post 20.10.2008, 13:41:38
Post #11





Grupa: Zarejestrowani
Postów: 250
Pomógł: 55
Dołączył: 27.08.2008

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


wielkie dzieki - DZIAŁA smile.gif
wystarczylo zamienic kolejnosc smile.gif

sorka za pisanie jedno pod drugim

ale mam jeszcze prosbe jak zrobic aby ograniczyc tylko przesylanie plikow typu jpg czy np png questionmark.gif

Ten post edytował krispak 20.10.2008, 12:48:45


--------------------
* * * * * * * * * * * * * * * * * * * * * * * * *
PHP, Laravel, Docker, Docker Compose, Laradock, Redis, JS, React, Vue, CSS, SCSS, Gulp, GIT ... itd..
Go to the top of the page
+Quote Post
Cienki1980
post 20.10.2008, 13:52:01
Post #12





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Cytat(krispak @ 20.10.2008, 14:41:38 ) *
sorka za pisanie jedno pod drugim

ale mam jeszcze prosbe jak zrobic aby ograniczyc tylko przesylanie plikow typu jpg czy np png questionmark.gif


Wystarczy sprawdzić rozszerzenie pliku ( np explode() ) i sprawdzić czy ostatni element tablicy to rozszerzenie które Ciebie interesuje lub korzystasz z getimagesize()" title="Zobacz w manualu PHP" target="_manual i sprawdzasz jaką wartość ma element tablicy o indexie 2


--------------------
404
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 6.07.2025 - 11:59