Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]problem z uploadem plikow do bazy danych
michat34
post 14.10.2012, 11:29:48
Post #1





Grupa: Zarejestrowani
Postów: 200
Pomógł: 1
Dołączył: 4.08.2012

Ostrzeżenie: (10%)
X----


witam, mam w db tabele a w niej 2 pola INT(A_I) oraz BLOB.
i chcialbym zeby byla opcja wgrywania plikow do bazy danych (słusznosc tego rozwiazania, zostawmy..). kod jest taki, ale nie działa:

  1. <form enctype="multipart/form-data" action="test.php" method="post" >
  2. <input type="hidden" name="MAX_FILE_SIZE" value="512000" />
  3. <input type="file" name="obrazek" />
  4. <input type="submit" name="ok" value="wyślij" />
  5. </form>


  1. <?php
  2. require('_baza.php');
  3. if (isset($_POST['ok']))
  4. {
  5. $fileName = $_FILES['obrazek']['name'];
  6. $tmpName = $_FILES['obrazek']['tmp_name'];
  7. $fileSize = $_FILES['obrazek']['size'];
  8. $fileType = $_FILES['obrazek']['type'];
  9. echo 'TMP: '.$tmpName.'<br>';
  10.  
  11. $fp = fopen($tmpName, 'r');
  12. $content = fread($fp, filesize($tmpName));
  13. $content = addslashes($content);
  14. fclose($fp);
  15.  
  16. echo 'CONTENT: '.$content.'<br>';
  17. $stmt=$pdo->exec("INSERT INTO photos (for) VALUES ('$content')");
  18. echo 'Sukces';
  19. }
  20.  


te 'echa' sa dla mnie sprawdzeniem czy wszystko chodzi. upload przykłądowego pliku zwraca:

  1. TMP: /users/michat34/temp/phpAVEDg0
  2. CONTENT: ‰PNG  IHDR8GM!¨ pHYs  šœtIMEÜ -QŔš•iTXtCommentCreated with GIMPd.eéIDATXĂľWIr! “ř˙›Ł°Ű˛ÜrHMz†/Z $-˙ú'ä\Ľö; ý{|˛5\3N ÂĎýň{ DœŠ%pż+-pďë{X –tžł×ű:Řşk=ď˙ĄŘ‡Ľó+ĎSľŚŐOZü΍3ż5ńUí;F]ěýY›—˛FŽýDď5ľ ˆ%{.(ž˝7`ԝ΁.űcç-hDžW? ƒŽ|ď2Ź‘×üŔš¸ó5ëgÖţô;Śă™Ţω‡/ž]ĂŁŸWŃ Z˝Uš ťv´ÚíŢcýÄQžŁŽLąb’sˆ{łVšÖc‡fŔ°ß?ó qŸËg­.ýÖ\;šUüSô‹ŔwVă_ă‘ᘊg~˜ţ0+,и­ŠÁ5höb÷ť°çšvćŹÁő]+§ÎŢ{?|ŞŐ'׉2źV]ď9Ą“{'^KÓż˝4t/0ď˜:5˛ďÍQ›‰ŤŢűÔ6\ýÉ5 q‚|üHßűrŇÝ'†_dżxí—LŁĚS/5ű ă`çşLGŮgŐO­Ž+Ĺ1ňŹ]>z÷“qçüźÂëĹ÷\wqŻ=›Wt uÍ-O+5Ď㥎O+žíŤř´źaÝK?´želóź/ˇŒ×köšFm–Ď1rř‹{_ďoév?[şř„í?š—XK ,î˙qŸ‘f^s&ŹY#ývâᥡg˝uöÓiřŸ~óđŚcžćC—ƒ'ĚI‡>sj}FĂ8rżé-ĕëW/yĚuÇ ŘŞYź´ëŮo÷“áÝË98őŔœű ÇyşßeŢuEŤý_łçßx2]ǘé|ĆcđżĺPsĺěÇ̓`s×1ß\îLs.ôűŘԜyٚźŕőž…
    œ/ÄcÉőŻŸÎšŠ‡6ÇÁtýĺKŽÉŽŠv÷Œúœ˜7_ÄđŘK͎ť¨ótz묓Ďďœ÷3ľťRŸ{pzşŢ3Ńž‹šžď Ł/ě=j÷36ĆL5çŻřîűúč •"žIENDŽB`‚
  3. Sukces


co nalezy poprawic (chodzi mi o sam kod, wiem ze nalezy tez zaimplentowac funkcje sprawdzjace typ mime i reszte ale to pozniej)

Ten post edytował michat34 14.10.2012, 11:31:22
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
jaslanin
post 14.10.2012, 19:53:25
Post #2





Grupa: Zarejestrowani
Postów: 511
Pomógł: 143
Dołączył: 13.03.2010
Skąd: Jasło

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


1. sprawdź co to jest SQL INJECTION
2. wstawiłeś content do zapytania by uzyskać błąd i po nim sprawdzić z czym problem?
3. musisz escape'ować dane z zapytania tj. Twój plik zawiera znaki ' (apostrof które psują zapytanie), zmiana na " (cytat też nic nie zmieni)

rozwiązanie:
http://php.net/manual/en/pdo.prepare.php
http://php.net/manual/en/pdostatement.execute.php

Ten post edytował jaslanin 14.10.2012, 19:54:38


--------------------
Good luck and happy PHP'ing
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: 14.08.2025 - 04:35