Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Proszę o pomoc część skryptu dodającego zdjęcia go galerii
Forum PHP.pl > Forum > Przedszkole
rebrov
Witam

Proszę o pomoc, mam część skryptu który dodaje zdjęcia do galerii lecz nie oczekiwanie przestał działać ciągle dostaje komunikat błędu czyli userpanel.php?ed=blad'

Ktoś może wyjaśnić mi dlaczego?

  1. $finfo = finfo_open(FILEINFO_MIME); $nazwap = "galeria/".$txt;
  2. if (finfo_file($finfo, $nazwap) == 'image/jpeg'){
  3. $img = imagecreatefromjpeg("galeria/".$txt);
  4. $width = imagesx($img);
  5. $height = imagesy($img);
  6. $width_mini = 120;
  7. $height_mini = 100;
  8. $img_mini = imagecreatetruecolor($width_mini, $height_mini);
  9. imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width , $height);
  10. imagejpeg($img_mini, "galeria/mini/".$txt,100);
  11. imagedestroy($img);
  12. imagedestroy($img_mini);
  13. }
  14. elseif (finfo_file($finfo, $nazwap) == 'image/gif'){
  15. $img = imagecreatefromgif("galeria/".$txt);
  16. $width = imagesx($img);
  17. $height = imagesy($img);
  18. $width_mini = 120;
  19. $height_mini = 100;
  20. $img_mini = imagecreatetruecolor($width_mini, $height_mini);
  21. imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width , $height);
  22. imagegif($img_mini, "galeria/mini/".$txt);
  23. imagedestroy($img);
  24. imagedestroy($img_mini);
  25. }
  26. else {unlink ('galeria/'.$txt);header ('Location: userpanel.php?ed=blad');exit();}
  27. echo header ('Location: userpanel.php?ed=done');exit();}
  28. else { echo header ('Location: userpanel.php?ed=blad');exit();}


IProSoft
Włacz wyświetlanie błędów, a zobaczysz gdzie jest problem.
rebrov
jak włączyć?
tomek200
  1. ini_set('display_errors', 1);

Daj to na samym początku pliku.
rebrov
ok dałem

błąd jest taki :

Warning: Cannot modify header information - headers already sent by (output started at /home/..... ) in /home/.......... on line 62

tomek200
  1. <?php
  2.  
  3. $finfo = finfo_open(FILEINFO_MIME); $nazwap = "galeria/".$txt;
  4. if (finfo_file($finfo, $nazwap) == 'image/jpeg'){
  5. $img = imagecreatefromjpeg("galeria/".$txt);
  6. $width = imagesx($img);
  7. $height = imagesy($img);
  8. $width_mini = 120;
  9. $height_mini = 100;
  10. $img_mini = imagecreatetruecolor($width_mini, $height_mini);
  11. imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width , $height);
  12. imagejpeg($img_mini, "galeria/mini/".$txt,100);
  13. imagedestroy($img);
  14. imagedestroy($img_mini);
  15. }elseif (finfo_file($finfo, $nazwap) == 'image/gif'){
  16. $img = imagecreatefromgif("galeria/".$txt);
  17. $width = imagesx($img);
  18. $height = imagesy($img);
  19. $width_mini = 120;
  20. $height_mini = 100;
  21. $img_mini = imagecreatetruecolor($width_mini, $height_mini);
  22. imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width , $height);
  23. imagegif($img_mini, "galeria/mini/".$txt);
  24. imagedestroy($img);
  25. imagedestroy($img_mini);
  26. }else{
  27. unlink ('galeria/'.$txt);
  28. header ('Location: userpanel.php?ed=blad');
  29. exit();}
  30. header ('Location: userpanel.php?ed=done');exit();}
  31.  
  32. ?>

Zobacz to ale nie wiem czy działa bo tak na szybko poprawiłem smile.gif
PS. Czy wysyłasz coś do przeglądarki przed headerami?
rebrov
cały plik setgadd :

  1. <?php
  2. ini_set('display_errors', 1);
  3.  
  4. include ('config.inc');
  5. $dir = opendir('galeria/mini/');$filetab = array();$z = 0;
  6. while(false !== ($file = readdir($dir)))
  7. if($file != '.' && $file != '..')
  8. {$filetab[$z] = $file;$z++;}
  9. closedir($dir);
  10. if (count($filetab) == $fotolimiter ) {echo header ('Location: userpanel.php?ed=blad');exit();}
  11. $txt = basename($_FILES['plik']['name']);
  12. $txtl = substr_count($txt,'.');
  13. if ($txtl <> 1 ) {echo header ('Location: userpanel.php?ed=blad');exit();}
  14. $pl = explode('.',$txt);
  15. $txt = $pl[0];
  16. $txt = str_replace('_','xspacex',$txt);$txt = preg_replace('/\s/', 'xspacex', $txt); $txt = str_replace('-','xspacex',$txt);
  17. $txt = strtolower($txt); $txt = stripslashes($txt);$txt = strip_tags($txt);
  18. $znaki = array('ą', 'ę','ć','ż','Ľ','ł','ó','ń','ś');
  19. $znaki2 = array('a','e','c','z','z','l','o','n','s');
  20. $txt = str_replace($znaki, $znaki2, $txt); //zamiana
  21. $txt = preg_replace('/\W/','',$txt);
  22. $txt = str_replace('xspacex','_',$txt);
  23. $pl[0] = $txt;
  24. $txt = implode('.',$pl);
  25. if(!is_uploaded_file($_FILES['plik']['tmp_name'])) {
  26. echo header ('Location: userpanel.php?ed=blad');exit();}
  27. if($_FILES['plik']['error'] != 0){
  28. echo header ('Location: userpanel.php?ed=blad');exit();}
  29. if($_FILES['plik']['size'] > $fotosizelimiter){
  30. echo header ('Location: userpanel.php?ed=blad');exit();}
  31. if(move_uploaded_file($_FILES['plik']['tmp_name'], "galeria/".$txt)) {
  32.  
  33. $finfo = finfo_open(FILEINFO_MIME); $nazwap = "galeria/".$txt;
  34. if (finfo_file($finfo, $nazwap) == 'image/jpeg'){
  35. $img = imagecreatefromjpeg("galeria/".$txt);
  36. $width = imagesx($img);
  37. $height = imagesy($img);
  38. $width_mini = 120;
  39. $height_mini = 100;
  40. $img_mini = imagecreatetruecolor($width_mini, $height_mini);
  41. imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width , $height);
  42. imagejpeg($img_mini, "galeria/mini/".$txt,100);
  43. imagedestroy($img);
  44. imagedestroy($img_mini);
  45. }elseif (finfo_file($finfo, $nazwap) == 'image/gif'){
  46. $img = imagecreatefromgif("galeria/".$txt);
  47. $width = imagesx($img);
  48. $height = imagesy($img);
  49. $width_mini = 120;
  50. $height_mini = 100;
  51. $img_mini = imagecreatetruecolor($width_mini, $height_mini);
  52. imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width , $height);
  53. imagegif($img_mini, "galeria/mini/".$txt);
  54. imagedestroy($img);
  55. imagedestroy($img_mini);
  56. }else{
  57. unlink ('galeria/'.$txt);
  58. header ('Location: userpanel.php?ed=blad');
  59. exit();}
  60. header ('Location: userpanel.php?ed=done');exit();}
  61. ?>


ciągle dostaje komunikat (żadnych błędów php nie ma )

Błędne dane / System nie zezwala na zakończenie operacje

innych kimounikatów nie mam
tomek200
Na samym początku dodaj

A na samym końcu
rebrov
Niestety dodałem ale nic się nie zmieniło - żaden błąd się nie wyświetla tylko ciągle ten napis
salfunglandyare
Masz kilka miejsc, gdzie następuje przekierowanie do błędu:
linia 11 - W przypadku gdy count($filetab) == $fotolimiter - analizując kod count($filetab) określa ilość plików w katalogu foto, $fotolimiter definiowana jest pewnie gdzieś z poziomu pliku config.inc, sprawdź, czy nie trzeba zwiększyć wartości $fotolimiter

Jeśli to nie pomoże:
linia 14 - sprawdzana jest txt1, w której zapisano ilość występowania znaku '.' w nazwie pliku. jeśli nie występuje dokładnie 1 raz, wtedy błąd (pliki aaaa.jpg.png czy bbbbb nie przejda przez to, plik ccccc.php tak tongue.gif )

Linie 26 i 28 - w normalnych przypadkach nie występują, a drugie wynika z pierwszego, możesz zamiast header() dać die() i sprawdzić, w którym miejscu się krzaczy

Jeśli nie to, to dalej linia 59 - wykonywana w następstwie sprawdzania pliku mime. W przypadku plików jpg i gif powinno być OK, ale nie zawsze. Osobiście spotkałem się z mime image/jpg zamiast image/jpeg, wiele zależy od bazy mime. Ale zakładam, że to nie jest problem.

Myślę, że jeśli nagle przestało działać, to opis dla linii 11 powinien pomóc.

Teraz taka rada - jeśli przekierowujesz na stronę błędu, dodawaj też jakiś unikalny komunikat w jakiejś zmiennej, np:

  1. header ('Location: userpanel.php?ed=blad&komunikat='.urlencode('Przekroczono limit ilości plików w galerii: '.$fotolimiter));


Jeśli pokazujesz komunikat o błędzie, niech będzie on dla Ciebie w jakiś sposób czytelny.
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.