Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Zabezpieczenie przed nieistniejącymi plikami nie działa
d0m1n1k_
post
Post #1





Grupa: Zarejestrowani
Postów: 208
Pomógł: 3
Dołączył: 13.07.2009
Skąd: Tarnów

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


Witam,
zastanawia mnie co jest z moim skryptem nie tak.
Jego działanie polega na pobieraniu zdjęć z serwera zewnętrznego.
Ze względu na ciągłe problemy z nieistniejącymi plikami (img wstawiony, ale niema go na serwerze) kombinuję ze wczesnym sprawdzaniem czy plik istnieje.
Najprostszym rozwiązaniem jakie wypaczyłem w manualu to sprawdzenie headera ale nie działa, albo przynajmniej nie zawsze działa.
Miałby ktoś jakieś uproszczenie, albo najlepiej wrzucenie wszystkiego w jedną funkcję?

  1. function check_header($url){
  2. $check_notfound = get_headers($url);
  3. $check_notfound = $check_notfound[0];
  4. return $check_notfound;
  5. }
  6.  
  7. function save_image($inPath,$outPath){
  8. $check_notfoundb = get_headers($inPath);
  9. $check_notfoundb = $check_notfoundb[0];
  10.  
  11. if(($check_notfoundb == 'HTTP/1.1 404 Not Found') OR ($check_notfoundb == 'not found')){
  12. //Error
  13. $out = "Error_pliku";
  14. }else{
  15. if(!$inPath || !$outPath){
  16. $out = "Error_pliku";
  17. }else{
  18. $in = fopen($inPath, "rb");
  19. $out = fopen($outPath, "wb");
  20. while($chunk = fread($in,8192)){
  21. fwrite($out, $chunk, 8192);
  22. }
  23. fclose($in);
  24. fclose($out);
  25. }
  26. }
  27. }
  28.  
  29.  
  30. if (is_array($obrazy) || is_object($obrazy)){
  31. foreach($obrazy as $imxg){
  32. if((check_header($imxg) == 'HTTP/1.1 404 Not Found') OR (check_header($imxg) == 'not found')){
  33. echo "Blad pliku - nie istnieje (HTTP/1.1 404 Not Found).";
  34. }else{
  35. $name = md5(date('YmdHis') . md5(md5(rand(1,999999999999)))) . ".jpg";
  36. $check_si = $fold . $name;
  37. save_image($imxg,$check_si);
  38.  
  39. $black = "000000";
  40. $image = WideImage::load("" . $fold.$name . "");
  41. $resize1 = $image->resize(800, 600);
  42. $resize2 = $resize1->resizeCanvas('800', '600', 'center', 'center', $black);
  43. $resize2->saveToFile("" . $fold.$name . "", 80);
  44.  
  45. $add_new_file = mysql_query("INSERT INTO `photos`(`ph_id`, `ph_user`, `ph_vehi`, `ph_cate`, `ph_imag`, `ph_fold`, `ph_data`) VALUES (NULL, NULL, '$id', '$cat_gogo', '" . $name . "', '$catnbr', NOW())");
  46. echo "<font color=\"green\">++</font>, ";
  47. }
  48. }
  49. }

Nie mam już pomysłu jak mogę poprawić ten kod, tak aby w końcu działały absolutnie poprawnie i był całkowicie odporny na errory spowodowane brakiem pliku(ów).
Z góry dziękuję za pomoc.


--------------------
Prywatna koncepcja pasji - SprawdzAuto.info
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 04:29