Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Prosty upload pliku, nie idzie...
shpaque
post
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

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


Witam,
ostatnio znalazłem w necie prosty skrypt na upload pliku, ale nie hula...

  1. <?
  2. if ($_SERVER['REQUEST_METHOD'] == 'POST')
  3. {
  4. $action = isset($_POST['action']) ? $_POST['action'] : '';
  5. $database = './../db/actuals.db';
  6. $success_page = './newok.php';
  7. $error_page = './admin.php';
  8.  
  9. if (!file_exists($database))
  10. {
  11. echo 'Nie odnaleziono bazy danych!';
  12. }
  13.  
  14. if ($action == 'form')
  15. {
  16. $logtime = date("Y-m-d");
  17. $newfota = $_POST['upload'];
  18. $newtitle = $_POST['title'];
  19. $newarticle = $_POST['article'];
  20.  
  21. $file = fopen($database, 'a');
  22. fwrite($file, $logtime);
  23. fwrite($file, '|');
  24. fwrite($file, $newfota);
  25. fwrite($file, '|');
  26. fwrite($file, $newtitle);
  27. fwrite($file, '|');
  28. fwrite($file, $newarticle);
  29. fwrite($file, "\r\n");
  30. fclose($file);
  31.  
  32. $filename = basename($_FILES['upload']['name']);
  33. $ext = substr($filename, strrpos($filename, '.') + 1);
  34. if (($ext == "jpg") && ($_FILES["upload"]["type"] == "image/jpeg") && ($_FILES["upload"]["size"] < 500000))
  35. {
  36. $newname = dirname(__FILE__).'/db/aktualnosci/'.$filename;
  37.  
  38. if (!file_exists($newname))
  39. {
  40. if ((move_upload($_FILES['upload']['tmp_name'],$newname)))
  41. {
  42. header('Location: '.$success_page);
  43. }
  44. else
  45. {
  46. header('Location: '.$error_page);
  47. }
  48. }
  49. }
  50. }
  51. }
  52. ?>



nie wiem czy jedynym błędem nie jest ścieżka - jak to zrobić żeby byłą poprawna?

skrypt wykonuje się w katalogu "./admin"
plik musi się zapisać z kolei w: "./db/aktualnosci/"

więc generalnie musialbym zrobic "./../db/aktualnosci/" ale to tez nie dziala...
Go to the top of the page
+Quote Post
Turson
post
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Czy katalog, w którym chcesz zapisać plik ma uprawnienia do zapisu?
Go to the top of the page
+Quote Post
lukaskolista
post
Post #3





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


Musze cie martwic, ale twoj upload przepusci pliki php
Go to the top of the page
+Quote Post
shpaque
post
Post #4





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

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


katalog ma uprawnienia,

co to znaczy przepusci pliki php? w jaki sposób? - ale czemu w ogole nie zapisuje pliku w odp katalogu?>
Go to the top of the page
+Quote Post
Turson
post
Post #5





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Przepuści pliki php to znaczy, że nie filtrujesz wysyłanego pliku i ktoś może wgrać shella.

  1. if ((move_upload($_FILES['upload']['tmp_name'],$newname)))

a może move_uploaded_file() ?
Go to the top of the page
+Quote Post
shpaque
post
Post #6





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

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


uploaded zmienilem - dalej nie wgrywa...

nie wiem czy z ta sciezka nie jest cos nie tak... albo sam juz nie wiem...
Go to the top of the page
+Quote Post
Turson
post
Post #7





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Ustaw ścieżkę na jakąś prostszą do wpisania i zobacz czy w ogole wgrywa
Go to the top of the page
+Quote Post
shpaque
post
Post #8





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

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


zmieniłem na
  1. $newname = './$filename';
- chyba prostszy nie może być

i dalej wywala mi errorpage
Go to the top of the page
+Quote Post
Turson
post
Post #9





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Jaki błąd?
Go to the top of the page
+Quote Post
shpaque
post
Post #10





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

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


jeszcze inaczej - nie idzie ani error page ani success page - po prostu przełądowuje stronę zostając na "nowy.php" - zapisuje wszystko z formularza do pliku (łącznie z nazwą pliku), ale nie uploaduje pliku ani nie przechodzi na success lub error page...

głupota, ale nie mialem multipart form data w formularzu (IMG:style_emoticons/default/wink.gif)

@edit

to teraz mam tak (zmodyfikowałem trochę)

  1. <?
  2. if ($_SERVER['REQUEST_METHOD'] == 'POST')
  3. {
  4. $action = isset($_POST['action']) ? $_POST['action'] : '';
  5. $database = './../db/actuals.db';
  6. $success_page = './newok.php';
  7. $error_page = './admin.php';
  8.  
  9. if (!file_exists($database))
  10. {
  11. echo 'Nie odnaleziono bazy danych!';
  12. }
  13.  
  14. if ($action == 'form')
  15. {
  16. $logtime = date("Y-m-d");
  17. $newfota = $_FILES['zalacznik']['name'];
  18. $newtitle = $_POST['title'];
  19. $newarticle = $_POST['article'];
  20.  
  21. $filename = basename($_FILES['zalacznik']['name']);
  22. $ext = substr($filename, strrpos($filename, '.') + 1);
  23. if (($ext == 'jpg') && ($_FILES['zalacznik']['type'] == 'image/jpeg') && ($_FILES['zalacznik']['size'] < 500000))
  24. {
  25. $newname = "./../db/aktualnosci/$filename";
  26.  
  27. if (!file_exists($newname))
  28. {
  29. if (move_uploaded_file($_FILES['zalacznik']['tmp_name'],$newname))
  30. {
  31. $file = fopen($database, 'a');
  32. fwrite($file, $logtime);
  33. fwrite($file, '|');
  34. fwrite($file, $newfota);
  35. fwrite($file, '|');
  36. fwrite($file, $newtitle);
  37. fwrite($file, '|');
  38. fwrite($file, $newarticle);
  39. fwrite($file, "\r\n");
  40. fclose($file);
  41. header('Location: '.$success_page);
  42. }
  43. else
  44. {
  45. header('Location: '.$error_page);
  46. }
  47. }
  48. else
  49. {
  50. echo '<script type=\"text/javascript\">';
  51. echo 'alert("Plik o tej nazwie jest już w naszej bazie!")';
  52. echo '<script>';
  53. break;
  54. }
  55. }
  56. }
  57. }
  58. ?>


i mam problem z alertem... Coś z wyświetleniem, bo akcja staje - tylko mam pusty ekran, zamiast okienka alertu

Ten post edytował shpaque 8.09.2013, 21:03:21
Go to the top of the page
+Quote Post
Turson
post
Post #11





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


  1. echo '<script>';
  2. echo 'alert("Plik o tej nazwie jest już w naszej bazie!")';
  3. echo '</script>';
Go to the top of the page
+Quote Post
shpaque
post
Post #12





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

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


dzięki ogromne za pomoc!

jeszcze jakbyś był tak miły i pomogl mi z tematem unlink - ktory zalozylem niedawno

to teraz pytanie dlaczego przepusci pliki php skoro ma zaznaczone ze tylko jpg ma dawac?
Go to the top of the page
+Quote Post
Turson
post
Post #13





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Spróbuj wgrać plik typu plik.jpg.php to się dowiesz czy przepuszcza czy nie.
Go to the top of the page
+Quote Post

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: 24.08.2025 - 21:10