Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Dodawanie zdjęcia do bazy
Forum PHP.pl > Forum > Przedszkole
andrzejlechniak
Witam
Mam problem. Mam skrypt, w którym dodaję zdjęcie wraz z opisem do bazy danych, czyli PHP + MySQL. I... no i właśnie nic się nie dzieje. Nie mogę dodać zdjęcia, wyrzuca mi [mój] błąd, choć fragment skryptowy dodający dane do bazy powinien działać dobrze bo podobny mam w innych skryptach, chociaż zatrzymuje się akcja na tym, że zdjęcie się nie dodaje. Taki jest oto skrypt:

  1. $zdjecie = $_POST['zdjecie'];
  2. $ImageDir = "galeria/";
  3. $uploadfile = $ImageDir.basename($_FILES['zdjecie']['name']);
  4.  
  5. if(move_uploaded_file($_FILES['zdjecie']['tmp_name'],$uploadfile))
  6. {
  7. if(isset($_POST['submit']))
  8. {
  9. $id_kategorii = 1;
  10. $tytul = $_POST['tytul'];
  11. $autor = $_POST['autor'];
  12. $nazwa = $_POST['nazwa']; //nazwa zdjęcie - np. zdjęcie.jpg
  13. $opis = $_POST['opis'];
  14.  
  15. if(empty($tytul) || empty($autor) || empty($nazwa) || empty($opis))
  16. {
  17. echo '<div class="niedodanie_komentarza">
  18. Wiadomość nie została dodana. Jedno z pól jest puste! Spróbuj jeszcze raz.
  19. </div>';
  20. }
  21. else if(strlen($_POST['tytul'])<4)
  22. {
  23. echo '<div class="niedodanie_komentarza">
  24. Wiadomość nie została dodana. Pole TYTUŁ: <span>'.$tytul.'</span> jest za krótkie! Spróbuj jeszcze raz.
  25. </div>';
  26. }
  27. else if(strlen($_POST['autor'])<4)
  28. {
  29. echo '<div class="niedodanie_komentarza">
  30. Wiadomość nie została dodana. Pole AUTOR: <span>'.$autor.'</span> jest za krótkie! Spróbuj jeszcze raz.
  31. </div>';
  32. }
  33. else if(strlen($_POST['nazwa'])<4)
  34. {
  35. echo '<div class="niedodanie_komentarza">
  36. Wiadomość nie została dodana. Pole TREŚĆ: <span>'.$nazwa.'</span> jest za krótkie! Spróbuj jeszcze raz.
  37. </div>';
  38. }
  39. else if(strlen($_POST['opis'])<4)
  40. {
  41. echo '<div class="niedodanie_komentarza">
  42. Wiadomość nie została dodana. Pole AUTOR: <span>'.$opis.'</span> jest za krótkie! Spróbuj jeszcze raz.
  43. </div>';
  44. }
  45. else
  46. {
  47. $sql = "INSERT INTO zdjecia (tytul, id_kategorii, data, autor, nazwa, status, opis)
  48. VALUES ('$tytul','$id_kategorii',CURDATE(),'$autor','$nazwa','$status','$opis');";
  49. $result = mysql_query($sql) or die( mysql_error());
  50. if($result)
  51. {
  52. echo '<div class="admin_info_1">
  53. Dodano wiadomość do bazy! | Aby zobaczyć aktualną listę wpisów
  54. <a href="...?id=admin_galeria" title="zobacz odświeżenie strony">odśwież</a>
  55. stronę.
  56. </div>';
  57. }
  58. else
  59. {
  60. echo '<div class="admin_info_2">
  61. Nie udało się dodać wiadomości do bazy! Spróbuj ponownie.
  62. </div>';
  63. }
  64. }
  65. }
  66. else
  67. {
  68. echo 'Nie udało się';
  69. }
  70. }
  71.  
  72. ///////////////////////////////////!!!!!------------Formularz przesyłania zdjęcia--------------!!!!!!////////////////////
  73. echo '<form enctype="multipart/form-data" action="...php?id=multimedia_dodaj_zdjecie" method="POST">
  74. <div class="log_form">
  75. <input name="zdjecie" type="file" />
  76. </div>
  77.  
  78. <div class="log_form">
  79. Podaj tytuł:
  80. <input type="text" name="tytul" />
  81. </div>
  82.  
  83. <div class="log_form">
  84. Przedstaw się:
  85. <input type="text" name="autor" />
  86. </div>
  87.  
  88. <div class="log_form">
  89. Nazwa zdjęcia :
  90. <input type="text" name="nazwa" />
  91. </div>
  92.  
  93. <div class="log_form">
  94. Napisz opis zdjęcia:<br />
  95. <textarea cols="32" rows="10" name="opis" maxlength="250"></textarea>
  96. </div>
  97.  
  98. <hr />
  99. <div class="log_form">
  100. <input type="submit" value="Dodaj" />
  101. </div>
  102. </form>';


Bardzo proszę o pomoc. Pozdrawiam.
untorched
Może tak udostępnisz jaki błąd Ci się pojawia? Bo tak domyślać to ja się mogę...
andrzejlechniak
Generalnie żaden błąd się nie pojawia oprócz tekstu 'Nie udało się' czyli po drugim 'ifie' if(isset[$_POST])... ale nic dalej nie działa. Wnioskuję, że tutaj gdzieś jest błąd, tzn. w przekazywaniu pliku do folderu. Tak myślę, bo dalej skrypt nie idzie. Jak dodaje plik graficzny to właśnie tak mam, a bez niego w ogóle pojawia się komunikat 'nie wybrano pliku' ale to jest już mniej istotne. Ale jeśli chodzi o działanie skryptu, to nawet nie idzie do sprawdzania długości znaków czy tego CZY pola nie są puste. Więc szczerze nie wiem czemu nic się nie wykonuje
untorched
W formularzu ma być..
  1. <input type="submit" name="submit" value="Dodaj" />
potreb
Tak troche źle robisz. Dużo ifów i sie gubisz. Przede wszsytkim, albo zastosuj klasę walidacji lub zastosuj prostą metodę do sprawdzania błędów np:
  1. $error = array();
  2. if(isset($_POST['title']) && strlen($_POST['title']) < 4) $error[] = "Nie wypełniono pola tytuł!";
  3. if(isset($_FILES['plik']['name']) && strlen($_FILES['plik']['name']) < 2) $error[] = "Nie wybrano pliku!";
  4.  
  5. if(count($error) > 0) {
  6. //foreach bledow
  7. } else {
  8. //zapisuje dane
  9. }


Weź sprawdzaj na poziomie błędów, echując sobie jakieś wartości czy się dobrze wykonuje skrypt, używaj var_dump dla funkcji i zmiennych, wtedy będziesz wiedział co jest nie tak.
andrzejlechniak
Działa, dzięki. Taka mała głupotka a denerwuje jak... W każdym razie działa a to jest najważniejsze. Dzieki
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.