Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [HTML][PHP] Upload system - co tu jest nie tak
Kam1k
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 12.02.2016
Skąd: Kalisz

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


Wycinek kodu, co tu jest nie tak. Chciałbym aby podczas przesyłania tego samego pliku pokazywało że TAKI PLIK JUŻ ISTNIEJE, a pokazuje mi komunikat SUKCESYWNY :/

  1. <?php
  2. if(isset($_FILES['image'])){
  3. $errors= array();
  4. $target_dir = "images/";
  5. $target_file = $target_dir . basename($_FILES["image"]["name"]);
  6. $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
  7.  
  8. $checking = 1;
  9.  
  10. // Dodatki
  11. $pU_url = 'xxx/upload/images/';
  12. $pU_bbcode_1 = 'xxx/upload/images/';
  13. $pU_bbcode_2 = 'xxx';
  14.  
  15. // Glowne zmienne
  16. $file_name = $_FILES['image']['name'];
  17. $file_size = $_FILES['image']['size'];
  18. $file_tmp = $_FILES['image']['tmp_name'];
  19. $file_type = $_FILES['image']['type'];
  20.  
  21. $file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));
  22.  
  23. //Rozszerzenia dostepne
  24. $expensions= array("jpeg","jpg","png", "gif", "bmp");
  25.  
  26.  
  27. // Sprawdzanie = Czy plik istnieje?
  28. if (file_exists($target_file)) {
  29. $errors[]= "<p><font color=red>Zmien nazwe pliku, poniewaz jest juz taki w bazie</font></p>";
  30. $checking = 0;
  31. }
  32.  
  33. // Sprawdzenie = Czy plik ma odpowiedni rozmiar?
  34. if($file_size > 52428800) {
  35. $errors[]='<p><font color=red>Maksymalny rozmiar pliku to 50MB, w ciagu 24h mozesz przeslac 100MB!</font></p>';
  36. $checking = 0;
  37. }
  38.  
  39. // Sprawdzenie = Czy plik ma odpowiednie rozszerzenie?
  40. if(in_array($file_ext,$expensions)=== false){
  41. $errors[]="<p><font color=red>Rozszerzenie pliku nie jest poprawne, obslugujemy tylko formaty zawarte w regulaminie</font></p>";
  42. $checking = 0;
  43. }
  44.  
  45. if ($checking == 0) {
  46. echo implode('<br>', $errors); // Pierw sprawdza czy nie ma bledow
  47. } else { // Jeśli CHECKING = 1 - wszystko jest OK - pokaze komunikat sukcesywny
  48. if(move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)) {
  49. echo "<p><font color='green'>Brawo! Twoj plik zostal pomyslnie przeslany, ponizej wypisano szczegoly<br>Uploaduj wiecej jesli tylko chcesz!</font></p>";
  50. }
  51. }
  52. }
  53. ?>
  54. <br>
  55. <form action = "" method = "POST" enctype = "multipart/form-data">
  56. <input type = "file" name = "image" />
  57. <input type = "submit" title = "Przeslij plik!"/>
  58. <hr>
  59. <ul>
  60. <li>Twoj plik:<br>
  61. <?php echo $_FILES['image']['name']; ?>
  62. <li>Rozmiar:<br>
  63. <?php echo $_FILES['image']['size']; ?>
  64. <li>Typ:<br>
  65. <?php echo $_FILES['image']['type'] ?>
  66. <li>Link:<br>
  67. <?php echo $pU_url.$_FILES['image']['name'] ?>
  68. <li>BBCode IMG:<br>
  69. <?php echo $pU_bbcode_1.$_FILES['image']['name'].$pU_bbcode_2 ?>
  70. </ul>
  71.  
  72. </form>


Ten post edytował Kam1k 9.06.2017, 09:45:36
Go to the top of the page
+Quote Post
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Bo masz sprawdzać czy $target_file instnieje a nie $_FILE
Go to the top of the page
+Quote Post
Kam1k
post
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 12.02.2016
Skąd: Kalisz

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


Nawet po poprawce

  1. Notice: Undefined index: url in xxxxxupload\index.php on line 48
  2.  
  3. Notice: Undefined index: bbcode in xxxxxupload\index.php on line 49
  4.  
  5. Warning: Illegal string offset 'image' in xxxxx\upload\index.php on line 67
  6.  
  7. Warning: Illegal string offset 'name' in xxxxx\upload\index.php on line 67
  8.  
  9. Brawo! Twoj plik zostal pomyslnie przeslany, ponizej wypisano szczegoly
  10. Uploaduj wiecej jesli tylko chcesz!


Ten post edytował Kam1k 8.06.2017, 11:24:36
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Od kiedy pola FILES maja URL czy BBCODE??

Przenosze. I nie uzywaj bbcode MANUAL do wklejania komunikatow bledow:/
Go to the top of the page
+Quote Post
Kam1k
post
Post #5





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 12.02.2016
Skąd: Kalisz

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


Cytat(nospor @ 8.06.2017, 12:25:40 ) *
Od kiedy pola FILES maja URL czy BBCODE??

Przenosze. I nie uzywaj bbcode MANUAL do wklejania komunikatow bledow:/


Wiem wiem, mój bład z tym manual ale od razu poprawiłem.
Z tym url i bbcode to robiłem dla testu bo chciałem coś sprawdzić, więc na to nie ma co patrzeć.

Chciałbym tylko aby zwracało komunikat jeśli plik już jest w folderze images
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
więc na to nie ma co patrzeć.
To moze nie marnuj juz wiecej naszego czasu i pokaz poprawny wg ciebie kod, dokladnie bledy jakie zwraca, ze wskazaniem w kodzie, ktore to linie.
Go to the top of the page
+Quote Post
Kam1k
post
Post #7





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 12.02.2016
Skąd: Kalisz

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


Cytat(nospor @ 8.06.2017, 12:58:08 ) *
To moze nie marnuj juz wiecej naszego czasu i pokaz poprawny wg ciebie kod, dokladnie bledy jakie zwraca, ze wskazaniem w kodzie, ktore to linie.


Powtórzę po raz kolejny

Kod
Warning: Illegal string offset 'image' in C:\xampp\htdocs\phpBB3\upload\index.php on line 66

Warning: Illegal string offset 'name' in C:\xampp\htdocs\phpBB3\upload\index.php on line 66

Brawo! Twoj plik zostal pomyslnie przeslany, ponizej wypisano szczegoly
Uploaduj wiecej jesli tylko chcesz!


Linia 66, jednak że jest to wycinek całości to tutaj jest to w Lini 35, a cały kod jest w temacie, jednak dla ułatwienia:

Kod
     // Sprawdzanie pliku
     if (file_exists($target_file['image']['name'])) {
        echo "<p><font color=\'red\'>Zmien nazwe pliku, poniewaz jest juz taki w bazie</font></p>";
        $checking = 1;
     }


I powtórzę po raz kolejny. Chodzi mi tylko i wyłącznie o to, gdy wrzucamy plik na upload i jest już taki w folderze /images/ to zamiast pokazywać SUKCES, ma pokazywać, że JEST JUŻ TAKI W BAZIE. Ewentualnie aby zmieniał nazwę kodując, ale taki wymagający nie jestem.

Ten post edytował Kam1k 8.06.2017, 12:12:12
Go to the top of the page
+Quote Post
Pyton_000
post
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


nie `$target_file['image']['name']` a `$target_file`
Go to the top of the page
+Quote Post
Kam1k
post
Post #9





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 12.02.2016
Skąd: Kalisz

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


Cytat(Pyton_000 @ 8.06.2017, 13:12:34 ) *
nie `$target_file['image']['name']` a `$target_file`


Dzięki wielkie, pomogło. Jednak komunikaty są błędne, pokazuje:

Kod
Zmien nazwe pliku, poniewaz jest juz taki w bazie

Brawo! Twoj plik zostal pomyslnie przeslany, ponizej wypisano szczegoly
Uploaduj wiecej jesli tylko chcesz!


Pierwsze zdanie - jak najbardziej!
Jednak zwraca także ten komunikat o sukcesie :/

Ogólnie cały skrypt tak samo nie przestrzega limitów i reguł, że ma obsługiwać tylko te formaty

Kod
      $expensions= array("jpeg","jpg","png", "gif", "bmp");


A cokolwiek bym wrzucił to dodaje, pewnie także omija filtr limitu 50MB

//edit
Poprawiłem cały kod w temacie

Ten post edytował Kam1k 8.06.2017, 12:52:37
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Co z tego ze robisz IFy na rozszerzenia i rozmiar jak potem nic z tym nie robisz. UPLOAD robisz bezwarunkowo.
To samo z takim samym plikiem. Najpierw robisz UPLOAD, wyswietlasz ze ok, a dopiero potem sprawdzasz czy plik istnieje ... Gdzie logika? Tak, plik bedzie istnial, bo dopiero co go tam wrzuciles
Go to the top of the page
+Quote Post
Kam1k
post
Post #11





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 12.02.2016
Skąd: Kalisz

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


Spróbowałem jeszcze w ten sposób, jednak zwraca mi tylko Zmien nazwe pliku, poniewaz jest juz taki w bazie

  1. if(move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)) {
  2.  
  3. // Limity
  4. if(in_array($file_ext,$expensions)=== false){
  5. $errors[]="<p><font color=red>Rozszerzenie pliku nie jest poprawne, obslugujemy tylko formaty zawarte w regulaminie</font></p>";
  6. }
  7.  
  8. if($file_size > 52428800) {
  9. $errors[]='<p><font color=red>Maksymalny rozmiar pliku to 50MB, w ciagu 24h mozesz przeslac 100MB!</font></p>';
  10. }
  11.  
  12. // Sprawdzanie pliku
  13. if (file_exists($target_file)) {
  14. echo "<p><font color=red>Zmien nazwe pliku, poniewaz jest juz taki w bazie</font></p>";
  15. }
  16.  
  17. } else {
  18. echo "<p><font color='green'>Brawo! Twoj plik zostal pomyslnie przeslany, ponizej wypisano szczegoly<br>Uploaduj wiecej jesli tylko chcesz!</font></p>";
  19. }
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Pozwol ze zacytuje ciebie
I powtórzę po raz kolejny.

Najpierw masz sprawdzac, czy mozna robic upload, dopiero potem masz robic upload a nie na odwrot.
Go to the top of the page
+Quote Post
Kam1k
post
Post #13





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 12.02.2016
Skąd: Kalisz

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


Cytat(nospor @ 8.06.2017, 15:08:09 ) *
Pozwol ze zacytuje ciebie
I powtórzę po raz kolejny.

Najpierw masz sprawdzac, czy mozna robic upload, dopiero potem masz robic upload a nie na odwrot.


Wiem o co chodzi, widzę to, tylko problem w tym, że nie wiem jak to napisać, zamienić, ale rozumiem że

  1. if(move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)) {


Musi być na samym końcu. No ale dobra, zacznę od początku, człowiek na błędach się uczy.

Chyba mi się udało, dodałem checking = 0 aby sprawdzał zrobiłem coś takiego:

  1. // Sprawdzanie = Czy plik istnieje?
  2. if (file_exists($target_file)) {
  3. echo "<p><font color=red>Zmien nazwe pliku, poniewaz jest juz taki w bazie</font></p>";
  4. $checking = 0;
  5. }
  6.  
  7. // Sprawdzenie = Czy plik ma odpowiedni rozmiar?
  8. if($file_size > 52428800) {
  9. $errors[]='<p><font color=red>Maksymalny rozmiar pliku to 50MB, w ciagu 24h mozesz przeslac 100MB!</font></p>';
  10. $checking = 0;
  11. }
  12.  
  13. // Sprawdzenie = Czy plik ma odpowiednie rozszerzenie
  14. if(in_array($file_ext,$expensions)=== false){
  15. $errors[]="<p><font color=red>Rozszerzenie pliku nie jest poprawne, obslugujemy tylko formaty zawarte w regulaminie</font></p>";
  16. $checking = 0;
  17. }
  18.  
  19. if ($checking == 0) {
  20. echo " ";
  21. } else { // Jeśli sprawdzenie = OK = plik zostanie przeslany na serwer
  22. if(move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)) {
  23. echo "<p><font color='green'>Brawo! Twoj plik zostal pomyslnie przeslany, ponizej wypisano szczegoly<br>Uploaduj wiecej jesli tylko chcesz!</font></p>";
  24. }
  25. }


Zwraca mi komunikat gdy sukcesywny oraz negatywny jednak jest ostatni problem przy przesyłaniu pliku z innym rozszerzeniem - wtedy nie pokazuje nic (IMG:style_emoticons/default/sad.gif)

Ten post edytował Kam1k 8.06.2017, 14:59:13
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No a co ma ci niby zwracac skoro dla bledow dales
echo " ";
Go to the top of the page
+Quote Post
Kam1k
post
Post #15





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 12.02.2016
Skąd: Kalisz

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


Cytat(nospor @ 8.06.2017, 16:01:39 ) *
No a co ma ci niby zwracac skoro dla bledow dales
echo " ";


Nie do końca rozumiem jak chcesz mnie nakierować, zamiast echo mam dać $errors[]=" "; ?
Skoro tak.. spróbuje, zobaczę i dam znać
Go to the top of the page
+Quote Post
Pyton_000
post
Post #16





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Ehh..

Skoro dodajesz błędy do tablicy `$errors[]` to wypadałoby wyświetlić je np.

`echo implode('<br>', $errors);`
Go to the top of the page
+Quote Post
Kam1k
post
Post #17





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 12.02.2016
Skąd: Kalisz

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


DZIĘKI POMOGŁO!

Została ostatnia rzecz

Jak wchodzę na ten swój upload to pokazuje mi błędy, a jeszcze nic nie jest że tak powiem robione. Pytanie czemu?
Jednak już teraz cały skrypt działa prawidłowo

  1.  
  2. Twoj plik:
  3.  
  4. Notice: Undefined index: image in C:\xampp\htdocs\phpBB3\upload\index.php on line 88
  5. Rozmiar:
  6.  
  7. Notice: Undefined index: image in C:\xampp\htdocs\phpBB3\upload\index.php on line 90
  8. Typ:
  9.  
  10. Notice: Undefined index: image in C:\xampp\htdocs\phpBB3\upload\index.php on line 92
  11. Link:
  12.  
  13. Notice: Undefined index: image in C:\xampp\htdocs\phpBB3\upload\index.php on line 94
  14.  
  15. Notice: Undefined variable: pU_url in C:\xampp\htdocs\phpBB3\upload\index.php on line 94
  16. BBCode IMG:
  17.  
  18. Notice: Undefined index: image in C:\xampp\htdocs\phpBB3\upload\index.php on line 96
  19.  
  20. Notice: Undefined variable: pU_bbcode_1 in C:\xampp\htdocs\phpBB3\upload\index.php on line 96
  21.  
  22. Notice: Undefined variable: pU_bbcode_2 in C:\xampp\htdocs\phpBB3\upload\index.php on line 96


Te błędy mam na stronie głównej jak tylko wejdę :/

Ten post edytował Kam1k 9.06.2017, 07:56:09
Go to the top of the page
+Quote Post
Pyton_000
post
Post #18





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Przecież masz wyjaśnione...
Go to the top of the page
+Quote Post
Kam1k
post
Post #19





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 12.02.2016
Skąd: Kalisz

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


Cytat(Pyton_000 @ 9.06.2017, 09:01:13 ) *
Przecież masz wyjaśnione...


Zamieniłem wszystko, jedyne echo które zostało to już na HTML'u
  1. <li>Twoj plik:<br>
  2. <?php echo $_FILES['image']['name']; ?>
  3. <li>Rozmiar:<br>
  4. <?php echo $_FILES['image']['size']; ?>
  5. <li>Typ:<br>
  6. <?php echo $_FILES['image']['type'] ?>
  7. <li>Link:<br>
  8. <?php echo $pU_url.$_FILES['image']['name'] ?>
  9. <li>BBCode IMG:<br>
  10. <?php echo $pU_bbcode_1.$_FILES['image']['name'].$pU_bbcode_2 ?>



//Zaktualizowałem cały kod w temacie na początku
Go to the top of the page
+Quote Post
Pyton_000
post
Post #20





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Przecież zanim wyślesz plik to nie masz nic w $_FILES.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 22.08.2025 - 19:46