Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Dodawanie mp3
Forum PHP.pl > Forum > Przedszkole
mp3-10
Witam mam taki problem, zamiast skrypt dodawać pliki mp3 wyświetla tylko jeden z 3 możliwych komunikatów. Próbowałem już wielu sposobów, lecz nie mogę znaleść błędu.

skrypt najduje się na www.razit.pl/dodaj_mp3.html

  1. <?php
  2. class panel extends kernel_panel
  3. {
  4.  
  5. var $komunikat;
  6.  
  7.  
  8. function uruchom()
  9. {
  10. $this->komunikat = '';
  11.  
  12.  
  13.  
  14. if ($_GET['op'] == 'dodajmp')
  15. {
  16. $this->dodaj_mp3();
  17. }
  18.  
  19. $a = mysql_query('SELECT count(id) AS ilosc FROM '.DB_PREFIX.'mp3 WHERE user ='.$this->user->getId().' LIMIT 1');
  20. $dane = mysql_fetch_assoc($a);
  21. $ilosc_mp3 = intval($dane['ilosc']);
  22.  
  23.  
  24.  
  25. if ($ilosc_mp3 >= $this->config['max_ilosc_mp3'] && $this->config['max_ilosc_mp3'] != 0)
  26. $this->komunikat = 'Nie możesz dodać więcej fotek ponieważ masz juz '.$this->config['max_ilosc_mp3'].'.';
  27. // else if ($this->user->getPlec() != 'k')
  28. // $this->komunikat = 'mp3 mogą dodawać tylko kobiety';
  29. else
  30. {
  31. $this->szablon->dodaj('formularz', true);
  32. }
  33.  
  34. $this->szablon->dodaj('komunikat', $this->komunikat);
  35. $this->szablon->dodaj('szablon', 'dodaj_mp3');
  36. $this->szablon->dodaj('szablon_dir', 'panel/');
  37. $this->szablon->wyswietl('index');
  38.  
  39. }
  40.  
  41. function dodaj_mp3()
  42. {
  43.  
  44. $a = mysql_query('SELECT count(id) AS ilosc FROM '.DB_PREFIX.'mp3 WHERE user ='.$this->user->getId().' LIMIT 1');
  45. $dane = mysql_fetch_assoc($a);
  46. $ilosc_mp3 = intval($dane['ilosc']);
  47.  
  48.  
  49. $mp3 = $_FILES['mp3'];
  50. $opis = trim($_POST['opis']);
  51. $tag = trim($_POST['tag']);
  52. if ($ilosc_mp3 >= $this->config['max_ilosc_mp3'] && $this->config['max_ilosc_mp3'] != 0)
  53. $this->komunikat = 'Dodałeś już maksymalną liczbę fotek!';
  54. // else if ($this->user->getPlec() != 'k')
  55. // $this->komunikat = 'mp3 mogą dodawać tylko kobiety';
  56. else if ($mp3['tmp_name'] == '')
  57. $this->komunikat = 'Wybierz plik';
  58. else
  59. {
  60. if ($this->config['akceptacja_fotek'] == 'tak')
  61. $stan = 'nowa';
  62. else
  63. $stan = 'ok';
  64.  
  65.  
  66. if (mysql_query('INSERT INTO '.DB_PREFIX.'mp3 VALUES ("", '.$this->user->getId().', "", '.time().', 0.0, 0, 0, "'.addslashes($opis).'", "'.$stan.'")'))
  67. {
  68. $id = mysql_insert_id();
  69. $rozszerzenie = '';
  70. $w = upload($mp3, 'mp3/', $rozszerzenie, array('mp3'), $id.'.{roz}' );
  71.  
  72. if ($w == 6)
  73. {
  74. $this->komunikat = 'Niewłaściwe rozszerzenie';
  75. mysql_query('DELETE FROM '.DB_PREFIX.'mp3 WHERE id = '.$id.' LIMIT 1');
  76. }
  77. else if ($w != 0)
  78. {
  79. $this->komunikat = 'Bład ładowania pliku';
  80. mysql_query('DELETE FROM '.DB_PREFIX.'mp3 WHERE id = '.$id.' LIMIT 1');
  81. }
  82. else if (!mysql_query('UPDATE '.DB_PREFIX.'mp3 SET rozszerzenie = "'.addslashes($rozszerzenie).'" WHERE id ='.$id.' LIMIT 1'))
  83. {
  84. $this->komunikat = 'Bład ładowani pliku';
  85. mysql_query('DELETE FROM '.DB_PREFIX.'mp3 WHERE id = '.$id.' LIMIT 1');
  86. }
  87. else
  88. {
  89. $this->komunikat = 'mp3 została dodana';
  90. if ($this->config['akceptacja_mp3'] == 'tak')
  91. $this->komunikat.='<br />Musi jeszcze zostać zatwierdzona przez admina';
  92. // udalo sie zaladowac
  93. } 
  94.  
  95. }
  96. else
  97. {
  98. $this->komunikat = 'Nie udało się dodać wpisu do bazy';
  99. }
  100. }
  101. }
  102.  
  103. }
  104. ?>
Wieviór
a jaki komunikat wyświetla?
mp3-10
Cytat(Wieviór @ 21.02.2008, 21:55:40 ) *
a jaki komunikat wyświetla?


wyświetla komunikat Wybierz plik? tylko nie wiem dlaczego ;D np. jak wezme plik z rozszerzeniem innym niż mp3 powinien wyświetlić się komunitak złe rozszeżenie, a on ciągl eten komunikat: wybierz plik. Ten sam skrypt tylko z ustawieniami dla fotek ładnie śmiga

Czy ktoś może wie w czym jest błąd sciana.gif sciana.gif ?
l0ud
Nie widzę tutaj żadnego sprawdzania błędów. Pewnie plik po prostu przekracza rozmiar dozwolony przez php, i dlatego przesyłanie się nie udaje [puste tmp_name]
mp3-10
Cytat(l0ud @ 22.02.2008, 16:52:24 ) *
Nie widzę tutaj żadnego sprawdzania błędów. Pewnie plik po prostu przekracza rozmiar dozwolony przez php, i dlatego przesyłanie się nie udaje [puste tmp_name]


Właśnie w tym problem nie. Coś popsułem w skrypcie bo zamiast go wykonać odrazu pokazuje ten komunikat. W php mam ustawione max wielkość pliku 100mb ;D
l0ud
zrób print_r() z tablicy $mp3 i zobacz, co zawiera
mp3-10
wyszło ze zawiera wszystkie potrzebne tabele

bo podstawowe dodawanie plików graficznych ładnie działa tu kod:
Lecz jak go przerobiłem na mp3 to nie chce działać. A od podstaw nie chce mi się pisać tongue.gif
  1. <?php
  2. class panel extends kernel_panel
  3. {
  4.  
  5. var $komunikat;
  6.  
  7.  
  8. function uruchom()
  9. {
  10. $this->komunikat = '';
  11.  
  12.  
  13.  
  14. if ($_GET['op'] == 'dodaj')
  15. {
  16. $this->dodaj_e();
  17. }
  18.  
  19. $a = mysql_query('SELECT count(id) AS ilosc FROM '.DB_PREFIX.'fotki WHERE user ='.$this->user->getId().' LIMIT 1');
  20. $dane = mysql_fetch_assoc($a);
  21. $ilosc_fotek = intval($dane['ilosc']);
  22.  
  23.  
  24.  
  25. if ($ilosc_fotek >= $this->config['max_ilosc_fotek'] && $this->config['max_ilosc_fotek'] != 0)
  26. $this->komunikat = 'Nie możesz dodać więcej fotek ponieważ masz juz '.$this->config['max_ilosc_fotek'].'.';
  27. // else if ($this->user->getPlec() != 'k')
  28. // $this->komunikat = 'Fotki mog&plusmn; dodawać tylko kobiety';
  29. else
  30. {
  31. $this->szablon->dodaj('formularz', true);
  32. }
  33.  
  34.  
  35. $this->szablon->dodaj('max_szerokosc', $this->config['max_szerokosc_upload']);
  36. $this->szablon->dodaj('max_wysokosc', $this->config['max_wysokosc_upload']);
  37.  
  38. $this->szablon->dodaj('komunikat', $this->komunikat);
  39. $this->szablon->dodaj('szablon', 'dodaj_fotke');
  40. $this->szablon->dodaj('szablon_dir', 'panel/');
  41. $this->szablon->wyswietl('index');
  42.  
  43. }
  44.  
  45. function dodaj_fotke()
  46. {
  47.  
  48. $a = mysql_query('SELECT count(id) AS ilosc FROM '.DB_PREFIX.'fotki WHERE user ='.$this->user->getId().' LIMIT 1');
  49. $dane = mysql_fetch_assoc($a);
  50. $ilosc_fotek = intval($dane['ilosc']);
  51.  
  52.  
  53. $fotka = $_FILES['fotka'];
  54. $opis = trim($_POST['opis']);
  55. $tag = trim($_POST['tag']);
  56. if ($ilosc_fotek >= $this->config['max_ilosc_fotek'] && $this->config['max_ilosc_fotek'] != 0)
  57. $this->komunikat = 'Dodałe&para; już maksymaln&plusmn; liczbę fotek!';
  58. // else if ($this->user->getPlec() != 'k')
  59. // $this->komunikat = 'Fotki mog&plusmn; dodawać tylko kobiety';
  60. else if ($fotka['tmp_name'] == '')
  61. $this->komunikat = 'Wybierz plik';
  62. else
  63. {
  64. if ($this->config['akceptacja_fotek'] == 'tak')
  65. $stan = 'nowa';
  66. else
  67. $stan = 'ok';
  68.  
  69.  
  70. if (mysql_query('INSERT INTO '.DB_PREFIX.'fotki VALUES ("", '.$this->user->getId().', "", '.time().', 0.0, 0, 0, "'.addslashes($opis).'", "'.$stan.'")'))
  71. {
  72. $id = mysql_insert_id();
  73. $rozszerzenie = '';
  74. $w = upload($fotka, 'fotki/', $rozszerzenie, array('jpg', 'jpeg', 'gif', 'png', 'bmp', 'DjVu', 'TIFF', '', 'XPM', 'XCF'), $id.'.{roz}' );
  75.  
  76. if ($w == 6)
  77. {
  78. $this->komunikat = 'Niewła&para;ciwe rozszerzenie';
  79. mysql_query('DELETE FROM '.DB_PREFIX.'fotki WHERE id = '.$id.' LIMIT 1');
  80. }
  81. else if ($w != 0)
  82. {
  83. $this->komunikat = 'Bład ładowania pliku';
  84. mysql_query('DELETE FROM '.DB_PREFIX.'fotki WHERE id = '.$id.' LIMIT 1');
  85. }
  86. else if (!mysql_query('UPDATE '.DB_PREFIX.'fotki SET rozszerzenie = "'.addslashes($rozszerzenie).'" WHERE id ='.$id.' LIMIT 1'))
  87. {
  88. $this->komunikat = 'Bład ładowani pliku';
  89. mysql_query('DELETE FROM '.DB_PREFIX.'fotki WHERE id = '.$id.' LIMIT 1');
  90. }
  91. else
  92. {
  93. $dane_obr=getimagesize('fotki/'.$id.'.'.$rozszerzenie);
  94. if ($dane_obr[0] > $this->config['max_szerokosc_upload'] || $dane_obr[1] > $this->config['max_wysokosc_upload'])
  95. {
  96. $this->komunikat = 'Fotka jest za duża. Maksymalny rozmiar to '.$this->config['max_szerokosc_upload'].'x'.$this->config['max_wysokosc_upload'];
  97. if (file_exists('fotki/'.$id.'.'.$rozszerzenie))
  98. unlink ('fotki/'.$id.'.'.$rozszerzenie);
  99. mysql_query('DELETE FROM '.DB_PREFIX.'fotki WHERE id = '.$id.' LIMIT 1');
  100. }
  101. else
  102. {  
  103. tworz_miniaturke('fotki/', $id.'.'.$rozszerzenie, 'fotki/', 'm'.$id.'.'.$rozszerzenie, $this->config['max_szerokosc_min'], $this->config['max_wysokosc_min']);
  104. tworz_miniaturke('fotki/', $id.'.'.$rozszerzenie, 'fotki/', $id.'.'.$rozszerzenie, $this->config['max_szerokosc_fotka'], $this->config['max_wysokosc_fotka']);
  105. dodaj_znak_wodny('fotki/'.$id.'.'.$rozszerzenie, 'znak.jpg', 'PD');
  106. $this->komunikat = 'Fotka została dodana';
  107. if ($this->config['akceptacja_fotek'] == 'tak')
  108. $this->komunikat.='<br />Musi jeszcze zostać zatwierdzona przez admina';
  109. // udalo sie zaladowac
  110. } 
  111. }  
  112. }
  113. else
  114. {
  115. $this->komunikat = 'Nie udało się dodać wpisu do bazy';
  116. }
  117. }
  118. }
  119.  
  120. }
  121. ?>
l0ud
Jeżeli wyświetla 'wybierz plik' to przecież ewidentnie widać, że $mp3['tmp_name'] jest puste. Nigdzie indziej nie występuje w kodzie taki komunikat...
mp3-10
Cytat(l0ud @ 22.02.2008, 17:40:22 ) *
Jeżeli wyświetla 'wybierz plik' to przecież ewidentnie widać, że $mp3['tmp_name'] jest puste. Nigdzie indziej nie występuje w kodzie taki komunikat...

Ale jest ustawione w kernelu że ma automatycznie generować ['tmp_name'].
l0ud
po
  1. <?php
  2. $mp3 = $_FILES['mp3'];
  3. ?>

daj
  1. <?php
  2. print_r($mp3);
  3. ?>


i wklej co to wyświetli. tmp_name jest domyślnym elementem tablicy wysłanego pliku w php, jednak będzie pusty w przypadku wystąpienia błędu. Wklej też kod formularza.
chemik1982
ustaw post_max_size, max_execution_time, upload_max_filesize i bedzie gralo.
mp3-10
już sobie z tym poradziłem yahoo.gif yahoo.gif yahoo.gif yahoo.gif podczas kopiowania kodu, obciełem w środku jedną literkę i nie działało ;D Teraz tylko ustawie jeszcze odtwarzacza mp3 i będzie działało! (tylko nie pamiętam gdzie się to ustawiało, musze przejrzeć pliki ;d)
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.