Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Dwa elseif nie działają jak należy
Forum PHP.pl > Forum > Przedszkole
Slas
Witam, chcę zrobić skrypt do uploadowania plików. Chcę aby po załadowaniu plików, skrypt zweryfikował czy format pliku i rozmiar pliku są dozwolone (jpg, png 1mb>) i wyswietlał wiadomość o błędzie jeśli wystąpi jeśli coś się nie zgadza. Chcę żeby skrypt rozróżniał kiedy format lub rozmiar są niepoprawne i dla każdego z osobna w razie błędu wyświetlał inna wiadomość. W sytuacji kiedy plik ma niepoprawny rozmiar jak i format chcę otrzymać inną informacje o błędzie.

Mam problem w sytuacji kiedy chcę wrzucić plik np. mp3 który ma ponad 1MB ponieważ wtedy skrypt automatycznie skacze do ostatniego else. Nie wiem jak to naprawic pomocy:(

  1. <meta charset="utf-8">
  2. <title>Wrzuć swoje obrazki</title>
  3. </head>
  4.  
  5. <form action="upload_file.php" method="post"
  6. enctype="multipart/form-data">
  7. Tytuł zdjęcia: <input type="text" name="title" id="title"> <br>
  8. Znak wodny: <input type="text" name="watermark" id="watermark"> <br>
  9. <label for="file">Filename:</label>
  10. <input type="file" name="file" id="file"><br>
  11.  
  12. <input type="submit" name="submit" value="Submit">
  13. </form>
  14.  
  15. </body>
  16. </html>


  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.  
  5. <title>Gallery</title></head>
  6. <body>
  7. <?php
  8. $allowedExts = array("jpeg", "jpg", "png");
  9. $temp = explode(".", $_FILES["file"]["name"]);
  10. $extension = end($temp);
  11. if ((($_FILES["file"]["type"] == "image/jpeg")
  12. || ($_FILES["file"]["type"] == "image/jpg")
  13. || ($_FILES["file"]["type"] == "image/png"))
  14. && ($_FILES["file"]["size"] < 1048576)
  15. && in_array($extension, $allowedExts))
  16. {
  17.  
  18. if ($_FILES["file"]["error"] > 0)
  19. {
  20.  
  21. echo "Error: " . $_FILES["file"]["error"] . "<br>";
  22. }
  23.  
  24. else
  25. {
  26. echo "Upload: " . $_FILES["file"]["name"] . "<br>";
  27. echo "File Type: " . $extension . "<br>";
  28. echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
  29. move_uploaded_file($_FILES["file"]["tmp_name"],
  30. "upload/" . $_FILES["file"]["name"]);
  31. echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
  32. }
  33. }
  34. elseif(
  35. ($_FILES["file"]["type"] != "image/jpeg")
  36. && ($_FILES["file"]["type"] != "image/jpg")
  37. && ($_FILES["file"]["type"] != "image/png")
  38. && ($_FILES["file"]["size"] > 1048576)
  39. )
  40. {
  41. echo "Wrong file format and too big file<br>";
  42.  
  43. }
  44.  
  45.  
  46.  
  47. elseif(($_FILES["file"]["size"] > 1048576)){
  48. echo "File is too big, maximum size is 1MB";
  49. }
  50. else{
  51. echo "File format not supported! Supported files formats are png i jpg.";
  52. }
  53.  
  54. ?>
  55. </body>
  56. </html>
Turson
Masz nieco chaotycznie
  1. sprawdź format{
  2. sprawdz rozmiar{
  3. uploaduj
  4. }
  5. else{
  6. zły rozmiar
  7. }
  8. else{
  9. zły format
  10. }
Slas
Cytat(Turson @ 25.11.2013, 20:25:53 ) *
Masz nieco chaotycznie
  1. sprawdź format{
  2. sprawdz rozmiar{
  3. uploaduj
  4. }
  5. else{
  6. zły rozmiar
  7. }
  8. else{
  9. zły format
  10. }


Chcę żeby były 3 komunikaty o błędzie. Kiedy jest zły format, zły rozmiar i kiedy rozmiar jak i format są złe.
Turson
W takim stwórz sobie np. $errors i przy komunikacie o błędzie dopisuj nowy komunikat, potem
if($errors!='') echo $errors
Slas
Cytat(Turson @ 25.11.2013, 20:51:54 ) *
W takim stwórz sobie np. $errors i przy komunikacie o błędzie dopisuj nowy komunikat, potem
if($errors!='') echo $errors

Mógłbyś dać mi jakiś wzór którym mam się kierować?
Turson
  1. $errors = '';
  2. sprawdź format{
  3. sprawdz rozmiar{
  4. uploaduj
  5. }
  6. else{
  7. $errors .= "Zły rozmiar <br>";
  8. }
  9. else{
  10. $errors .= "Zły format <br>";
  11. }
  12. if($errors!='') echo $errors;
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.